Эта история предназначена для людей, которые подписались на плейлисты YouTube MEAN Stack Front To Back, чтобы настроить среду MEAN.

Я не хотел запускать ng build каждый раз при развертывании на heroku. Итак, вот как запустить его автоматически. Мы будем использовать npm postbuild и postinstall.

Запустите npm install для вашего приложения angular

Когда ваше среднее приложение будет развернуто на heroku, они будут использовать package.json в корневом каталоге. npm installдолжен быть запущен для вашего приложения angular.

Откройте package.json в родительском каталоге и вставьте следующую строку в scriptstag:

"scripts": {
  ...
  "heroku-postbuild": "cd ANGULAR_APP_FOLDER && npm install"
}

heroku-postbuild - это тег, используемый только в среде Heroku. Он запускает указанную команду после того, как Heroku построит ваше приложение. (Пояснение к Heroku Devcenter)

Запустите ng build после установки пакета

Перейдите в папку приложения angular и откройте package.json (ПРИМЕЧАНИЕ: это приложение ANGULAR package.json. В отличие от package.json на предыдущем шаге). Вставьте следующую строку в scriptstag:

"scripts": {
  ...
  "postinstall": "ng build --aot -prod"
}

Команда в postinstall выполняется после установки пакета npm. Пришло время создать приложение angular. Вы можете проверить параметры клика здесь.

Изменить devDependencies и dependencies

Не закрывайте приложение Angular package.jsonopen. Вставьте следующие пакеты в dependencies.

Angular CLI работает в среде heroku, в которой Angular CLI не установлен по умолчанию. Поэтому нам нужно установить Angular CLI в производственной среде.

"@angular/cli": "^1.0.1",
"@angular/compiler-cli": "^2.3.1",
"typescript": "^2.0.3"

Удалите следующие библиотеки из devDependencies. Поскольку они устанавливаются в производственной среде, нам не нужно хранить их в среде разработки.

"@angular/compiler-cli"
"typescript"

Укажите, какой узел и версию npm вы хотите использовать

Откройте package.jsonпод папкой вашего проекта. Вставьте следующие строки:

"engines": {
  "node": "7.8.0",
  "npm": "4.6.1"
}

Без этого npm жалуется на UNMET DEPENDENCIES, когда вы нажимаете на heroku.

Эти две ссылки очень помогли решить проблему. Спасибо.