Сборка угловая для производства без установки devDependencies - PullRequest
0 голосов
/ 28 июня 2018

В настоящее время я пытаюсь создать контейнер Docker для создания моего производственного приложения Angular. Я использую нпм. Я хочу установить только зависимости (поэтому нет devDependencies), поэтому я хочу сделать это:

npm install --only=prod ng build project-name --prod

Единственная проблема в том, что мне не хватает многих пакетов, таких как @ angular / cli и @ angular-devkit / build-angular для моей сборки. Я не смог найти хороших решений в интернете, но я не хочу, чтобы моя сборка включала все мои devDependencies. Кроме того, я не хочу, чтобы моя производственная сборка содержала какие-либо пакеты, необходимые для сборки. Есть ли хорошее решение для этого?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Не беспокойтесь о своих зависимостях.

Когда вы запускаете производственную сборку с помощью @ angular / cli через

ng build --prod

Angular удалит неиспользуемые пакеты и код из вашего пакета! См. https://github.com/angular/angular-cli/wiki/build для всех параметров сборки, которые вы можете установить.

Единственное, что вам нужно учитывать, это то, как вы используете свои пакеты и поддерживают ли ваши зависимости treeshaking . Избегайте импорта, как:

import * as xy from 'packageXY';

Еще один совет - пакет npm Webpack-Bundle-Analyzer Выполните эти команды для проверки / анализа вашего пакета:

npm i webpack-bundle-analyzer

ng build --prod --stats-json

cd dist 

webpack-bundle-analyzer stats.json

enter image description here

0 голосов
/ 28 июня 2018

Все пакеты npm, которые вы используете на этапе разработки, не будут включены в вашу производственную сборку. При установке ваших пакетов не требуется никаких специальных команд. Вы устанавливаете все необходимые вам пакеты или запускаете npm install для существующего проекта как обычно.

Когда развертывает ваше приложение Angular с ng build prod, оно включает только критические пакеты для вашего приложения и зависимости, которые вы включаете в файл angular.json в build раздел.

Попробуйте сами: возьмите любой угловой проект, запустите npm install или добавьте пакеты npm, затем запустите ng build prod, перейдите в папку dist внутри папки вашего проекта и посмотрите, как меньше вещей по сравнению с ваш проект, особенно внутри папки node_modules .

...