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

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

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

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

Ответ 1

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

Вы можете использовать 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
      })
    ]
  }
};

Ответ 3

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

Ответ 4

Вы можете попробовать это

npm install uglifyjs-webpack-plugin --save-dev

webpack.config.js

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

module.exports = {
  optimization: {
    minimizer: [new UglifyJsPlugin()],
  },
};

документация веб-пакета

Ответ 5

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

 optimization: {
   minimize: false
 }

Ответ 6

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