如何让简洁的 webpack 插件正常工作

How to get terser webpack plugin works properly

我正在尝试了解如何让 terser webpack plugin 在最简单的情况下工作。

这是我的代码:

src/math.js,导出 2 个函数。

export const double = (x) =>
  x + x;

export const triple = (x) =>
  x + x + x;

scr/index.js,仅导入 double 函数。

import { double } from './math.js';
console.log(double(10));

我从 webpack documentation 了解到,如果我想激活 tree shaking,我必须使用 ModuleConcatenationPlugin

这是我的 webpack 配置:

webpack/index.js

const webpack = require('webpack');
const TerserPlugin = require('terser-webpack-plugin');

module.exports = {
  mode: 'none',
  module: {
    rules: [
        {
            test: /\.js$/,
            loader: 'babel-loader',
            options: {
                presets: [
                    ['@babel/preset-env', {
                        modules: false
                    }]
                ],
                babelrc: false
            }
        }
    ]
  },
  plugins: [
      new webpack.optimize.ModuleConcatenationPlugin()
  ],
  optimization: {
      minimizer: [new TerserPlugin({})],
  }
};

我不明白我在 webpack 配置中遗漏了什么。 webpack 输出没有缩小或摇树...


节点:"v10.10.0"

webpack: "^4.28.1"

webpack-cli: "^3.2.1"

@babel/core: "^7.2.2"

@babel/preset-env: "^7.1.5"

babel-loader: "^8.0.5"

terser-webpack-plugin: "^1.2.1"

看到您将 mode 设置为 noneoptimization.minimize 设置为 false,因此永远不会实例化您的 Terser 自定义实例。

minimize: true 添加到 optimization 对象,它应该可以工作。