Чем отличается производство веб-пакетов от разработки, связанной со встряхиванием деревьев - PullRequest
0 голосов
/ 29 мая 2019

в моей конфигурации веб-пакета

, когда

mode: "development"

, если я использую

import { pick, flattenDeep, chunk, fromPairs } from 'lodash-es';

или

import _ from 'lodash-es';

размер пакета - этото же самое примерно в 3,27 МБ.

, но когда я устанавливаю режим в производственный режим в конфигурации моего веб-пакета, я получаю размер пакета 1,52 МБ для первого синтаксиса импорта, но я получаю 2,5 МБ для второго синтаксиса, что приводитЯ могу поверить, что в процессе разработки не происходит сотрясение дерева.

Я прочитал другой вопрос о переполнении стека, что lodash-es был модулем es6, и что веб-пакет мог только расшатывать дерево на тех, а не на обычных js,и я также прочитал, что при разработке для конфигурации webpack мне понадобится

plugins: [
    new webpack.optimize.ModuleConcatenationPlugin()
],

, который у меня был все время.

Так что мне любопытно, чего мне не хватает и почему размер пакетане уменьшается в разработке при использовании упомянутого плагина.

Я экспериментирую с этими изменениями в примере проекта, который я создал на https://github.com/JordanKlaers/vueWebpackPlayground

1 Ответ

1 голос
/ 29 мая 2019

По умолчанию механизм встряхивания дерева веб-пакета работает на этапе минимизации ( terser-webpack-plugin ), эта фаза по умолчанию включена только при production режим, поэтому вы не видите никаких изменений в размере пакета, когда вы на development.

Модуль concat plugin работает только на es6 modules и может улучшить процесс встряхивания дерева.

...