Webpack 4 - Как настроить минимизацию?


114

Webpack 4 содержит следующее заявление:

webpack.optimize.UglifyJsPlugin был удален, используйте вместо него config.optimization.minimize.

Достаточно честно, но я не могу найти никакой информации о настройке экземпляра UglifyJsPlugin, работающего под капотом, например, для изменения каталога кеша. Это можно сделать?


2
Для справки, UglifyJsPluginзначения по умолчанию перечислены здесь
davnicwil

Ответы:


95

Изменить конфигурацию по умолчанию невозможно.

Однако вы можете использовать этот optimization.minimizerпараметр для создания собственного экземпляра UglifyJsPlugin. Использование 4.0 мы использовали этот пример , чтобы получить исходный код карты , даже если modeустановлено значение 'production', например (больше не требуется , как в 4.1.1):

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [
      // we specify a custom UglifyJsPlugin here to get source maps in production
      new UglifyJsPlugin({
        cache: true,
        parallel: true,
        uglifyOptions: {
          compress: false,
          ecma: 6,
          mangle: true
        },
        sourceMap: true
      })
    ]
  }
};

95
Разве webpack 4 не должен был иметь нулевую конфигурацию?
Connexo 01

3
Однако для этого мне необходимо создать экземпляр плагина, я просто хочу изменить существующую конфигурацию.
csvan 01

4
И имейте в виду, что вам может понадобиться сделать yarn add uglifyjs-webpack-plugin --dev;)
Альфонсо Перес

2
и тут; выполните поиск по запросу «optimizer.minimizer» на этой странице: medium.com/webpack/webpack-4-mode-and-optimization-5423a6bc597a
Beau

3
@ AlfonsoPérez webpack уже устанавливается uglifyjs-webpack-pluginкак зависимость
Beau

5

Не добавляя uglifyjs-webpack-plugin, вы можете просто добавить это в конец вашего файла webpack.prod.config.js :

 optimization: {
   minimize: false
 }



1

Те, кто следуют за мной, осознают, что эта вводящая в заблуждение ошибка не связана с моей правильной конфигурацией веб-пакета, но на самом деле offline-pluginон устарел и вызывает эту проблему. Его нужно было обновить. См. Проблему с github: https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues/234#issuecomment-369134047


-4

Вы должны проверить pопцию: https://webpack.js.org/guides/production/#cli-alternatives : этот флаг указывает Webpack оптимизировать вашу сборку для производственной среды. Вы можете использовать его с новой «производственной» modeдля сборки меньшего размера.


2
Спасибо, но я хочу изменить конфигурацию по умолчанию.
csvan 01
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.