Запускайте оптимизацию webpack только в режиме `prod` - PullRequest
0 голосов
/ 10 февраля 2020

Я реализовал проект веб-пакета, в котором я использую TerserPlugin в качестве оптимизатора в веб-пакете. Когда я запускаю webpack-dev-server с помощью следующей команды, я вижу в своем терминале, что более быстрая оптимизация происходит даже в режиме разработки.

"start": "run-script-os",
"start:win32": "..\\..\\node_modules\\.bin\\webpack-dev-server --env.NODE_ENV=local --mode development --inline --hot --open",
"start:default": "../../node_modules/.bin/webpack-dev-server --env.NODE_ENV=local --mode development --inline --hot --open",

Conolse Output

[WDS] 92% - chunk asset optimization.
[WDS] 92% - chunk asset optimization (TerserPlugin).
[WDS] 93% - after chunk asset optimization.
[WDS] 93% - after chunk asset optimization (SourceMapDevToolPlugin).
[WDS] 93% - asset optimization.
[WDS] 94% - after asset optimization.
[WDS] 94% - after seal.
[WDS] 95% - emitting.

Настройка веб-пакета на опции оптимизатора

optimization: {
    minimize: true,
    nodeEnv: 'production',
    minimizer: [
        new TaserJSPlugin({
             terserOptions: {
                 keep_fnames: true
             }
        })
    ]
}

Что является правильным способ запуска dev-сервера в режиме разработки с выключенной оптимизацией? Так как это только в режиме разработки, мне не нужно было бы минимизировать код.

Причина этого подхода заключается в том, что для завершения шага [WDS] 92% - chunk asset optimization (TerserPlugin). требуется некоторое время, поэтому мне приходится ждать, пока он не завершится. Есть мысли по этому поводу?

1 Ответ

1 голос
/ 10 февраля 2020

Условно добавьте, какие оптимизации вы хотите. В следующем коде, когда NODE_ENV установлен на production, только тогда TaserJSPlugin будет использоваться для сборки.

const isProd = process.env.NODE_ENV === 'production';

...

minimizer: [
    isProd && new TaserJSPlugin({
         terserOptions: {
             keep_fnames: true
         }
    })
].filter(Boolean)
...

Обратите внимание, что в веб-пакете может возникнуть ошибка, если в массив. Таким образом, мы отфильтровываем это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...