Webpack 4 - 如何配置最小化?

Webpack 4 - How to configure minimize?

Webpack 4 自带如下语句:

Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.

很公平,但我找不到任何有关在幕后配置 UglifyJsPlugin 实例 运行 的信息,例如更改缓存目录。这能做到吗?

你应该检查 p 选项: https://webpack.js.org/guides/production/#cli-alternatives :这个标志告诉 Webpack 为生产环境优化你的构建。您可以将它与新的 "production" mode 一起用于较小的构建。

无法修改默认配置。

不过,您可以使用 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
      })
    ]
  }
};

就运行:

yarn add uglifyjs-webpack-plugin --dev

参考:Alfonso Pérez回答

对于那些支持我的人,意识到这个误导性错误与我正确的 webpack 配置无关,但实际上,offline-plugin 已经过时并导致了这个问题。它需要升级。请参阅 github 问题:https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues/234#issuecomment-369134047

你可以试试这个

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

webpack.config.js

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

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

webpack documentation

无需添加 uglifyjs-webpack-plugin,您只需将其添加到 webpack.prod.config.js 文件的末尾即可:

 optimization: {
   minimize: false
 }