Angular Heroku Вы должны быть внутри проекта angular-cli, чтобы использовать команду сборки

#angular #heroku #angular-cli

#angular #heroku #angular-cli

Вопрос:

Я пытаюсь развернуть приложение NodeJS Angular в Heroku. И я получаю сообщение об ошибке Вы должны быть внутри проекта angular-cli, чтобы использовать команду сборки.

У меня есть структура папок, как на скриншоте ниже.

введите описание изображения здесь

И package.json в главной папке. введите описание изображения здесь

Затем я пытаюсь git push heroku master. Кажется, я устанавливаю зависимость angular cli, а затем запускаю сборку ng, но все равно появляется ошибка.

введите описание изображения здесь

Комментарии:

1. Во-первых, у вас не должно быть двух файлов package.json. Вам нужен только тот, который находится в корневом каталоге. Во-вторых, вам не нужно специально устанавливать Angular CLI для сборки проекта. @angular/cli должно быть указано как devDependency

2. После нажатия вы должны быть в состоянии выполнить ng build --prod как часть вашей build команды в package.json. Если вы используете Angular Universal, это, скорее всего, будет включать стандартную ng build команду, но также prerender и ng run вашей конфигурации сервера.

3. Согласно документам heroku, angular cli должен быть зависимостью

4. Я развернул, вероятно, дюжину приложений Angular 4 в Heroku, и я никогда не указывал CLI в качестве зависимости, которая должна быть включена в приложение. Требуется только скомпилировать код, вы бы не хотели, чтобы он добавлялся ни в один из обслуживаемых пакетов.

Ответ №1:

Решил мою проблему, добавив NPM_CONFIG_PRODUCTION=false.

Из heroku docs

Если вам нужен доступ к пакетам, объявленным в разделе devDependencies в другом buildpack или во время выполнения, тогда вы можете установить NPM_CONFIG_PRODUCTION=false или YARN_PRODUCTION=false, чтобы пропустить этап обрезки.
документы