Развертывание приложения nodeJS в рабочем режиме в Dokku. - PullRequest
0 голосов
/ 01 ноября 2019

Когда я развертываю приложение nodeJS в Dokku через Git, оно запускает команду:

-----> Build
   Running build

   > my-project-name@0.0.0 build /tmp/build
   > ng build

Это приложение Angular, и я хочу, чтобы оно было собрано в производственном режиме, то есть: ng build --aot --prod.

Как я могу повлиять на команду, запускаемую на этапе сборки Dokku?

Вот часть scripts моего package.json:

  "scripts": {
    "ng": "ng",
    "start": "node server.js",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  }, 

I 'мы пытались добавить "postinstall": "ng build --aot --prod" к вышесказанному. Это действительно запускает правильную команду сразу после установки, но затем начинается фаза сборки, и она запускается ng build снова (таким образом, переопределяя производство).

Возможно, я мог бы изменить "build": "ng build" выше, чтобы добавить--aot --prod - но я не уверен, какой эффект это даст при локальном запуске моего Node-приложения, где я никогда не хочу --prod?

1 Ответ

1 голос
/ 13 ноября 2019

Вы можете запустить ng build --aot --prod на своем локальном компьютере, а затем зафиксировать папку dist (удалить ее из .gitignore). Затем просто создайте пустой файл с именем «.static» в корневой папке проекта.

Затем на сервере dokku запустите:

dokku config: установите имя пользователя NGINX_ROOT = dist BUILDPACK_URL = https://github.com/dokku/buildpack-nginx

Затем запустите «git push dokku master».

При таком подходе вам не придется беспокоиться о сценариях package.json.

...