通过插件复制源代码时,请使用terser webpack插件而不是uglify

时间:2019-04-22 22:01:01

标签: webpack bundling-and-minification webpack-4 uglifyjs terser

我的webpack.config.js中有以下包裹:

const CopyWebpackPlugin = require("copy-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const UglifyJS = require("uglify-es");

这是我使用以下软件包的配置的一部分:

  optimization: {
    minimizer: [new TerserPlugin()],
  },
  plugins: {
    new CopyWebpackPlugin([
      {
        from: "./node_modules/whatwg-fetch/dist/fetch.umd.js",
        to: "./js/polyfills/whatwg-fetch.js",
        transform: content => UglifyJS.minify(content.toString()).code,
      },
    ]),
  }

因此,我使用terser最小化了我的普通捆绑包,并通过uglify缩小了copy-webpack插件正在复制的源。我想摆脱uglify并将其替换为terser,因为它们都用于缩小。可能吗? terser插件可以在optimization配置部分之外使用吗?或者也许我可以以某种方式告诉他将我手动复制的资源也减到最少?

1 个答案:

答案 0 :(得分:0)

结果证明很简单。由于terser-webpack-plugin包含terser,因此可以单独使用。

const CopyWebpackPlugin = require("copy-webpack-plugin");
const Terser = require("terser");

无需将terser添加到依赖项列表!然后,我们可以在需要时显式使用它:

  plugins: {
    new CopyWebpackPlugin([
      {
        from: "./node_modules/whatwg-fetch/dist/fetch.umd.js",
        to: "./js/polyfills/whatwg-fetch.js",
        transform: content => Terser.minify(content.toString()).code,
      },
    ]),
  }