2016-12-31 6 views
5

Выполнение ряда угловых команды консоли для того, чтобы построить уменьшенный базовый проект:Угловая CLI - почему <ng serve> комплект лучше, чем <ng build>?

ng new project 
cd project 
ng build --prod 

... в результате, я получаю сгенерированную dist папку с числом пучков. Самый большой из них называется vendor.[hash].js и его размер около 855kB.

Однако, если я выполняю ng serve --prod вместо:

ng new project 
cd project 
ng serve --prod 

... Я могу видеть нагружено расслоение веса localhost:4200 поставщика составляет около 300kB с помощью консоли Chrome.

Почему это происходит? Есть ли способ достичь второго результата без ng serve, а с ng build?

+0

Большой вопрос, если это действительно так (я собираюсь попробовать). Возможно ли, что ng-сервис держит что-то в памяти или иным образом не полностью связывает все активы, например. выход webpack для -prod будет отличаться, чтобы сделать полностью развертываемый дистрибутив? Мне интересно, потому что, когда я использую прямые ES6 и webpack, и делаю сборку, я склонен получать МНОГО менее сложные дистрибутивные пакеты, которые загружаются быстрее. Я стал полу-сомнительным в отношении результатов распространения CLI (вероятно, из-за нехватки знаний о том, как настроить их точно так, как я хочу, используя конфигурацию cli вместо webpack). –

+0

Я попробовал, кажется, некоторые активы могут быть кэшированы. –

+0

@TimConsolazio, если использовать webpack явно, как описано в [Angular doc] (https://angular.io/docs/ts/latest/guide/webpack.html), результат будет очень похож на 'ng build - prod' один. Просто заметили, что выходы 'cmd' немного отличаются, вывод' ng serve' выглядит немного большим, чем другой – WildDev

ответ

3

Как было обнаружено в комментариях, вы просто сравнили два разных значения: размер файла без gzip в файловой системе и размер загружаемой gzipped в консоли браузера.

0

Я испытал это в моей среде:.

нг сборки --prod = основной [хеш] .js = 792KB.

bg служить --prod = main. [Hash] .js = 863KB.

$ ng --version 
angular-cli: 1.0.0-beta.19-3 
node: 7.0.0 
os: win32 x64 

ng serve генерировать кэш-файл немного меньше, потому что является временным.

Обновите свой новый кли и повторите тест.

+0

Обновили все инструменты. Npm - '4.0.5', узел' 7.3.0', angular-cli '1.0.0-beta.24'. Но все по-прежнему одно и то же. Разница в весе кажется огромной, как только приложение выросло, просто установил Material 2 в базовый проект. Разница в весе более 1 МБ теперь, «280kB' против' 1300kB »одна – WildDev

+0

Несмотря на временное, все работает с этим, как будто это не так. Так странно – WildDev

1

Это не о том, какой из них лучше.

Это все о том, когда следует использовать build или служить.

  1. сборка используется для целей развертывания и служить используются для целей развития.
  2. build создает скомпилированный вывод в каталог/dist и служит сбор артефактов из памяти для более быстрого развития.

Ref: build vs. serve