如何调试此 Webpack 错误 - 来自 Terser 的 Bundle.js 中的 ERROR

Ros*_*all 2 node.js webpack

我正在尝试使用 webpack 捆绑 Node JS 项目,因为它在最小化代码大小等方面提供了好处,并将所有依赖项捆绑在一起。

我的 webpack 作业失败并出现以下错误:

ERROR in bundle.js from Terser
Invalid function parameter [bundle.js:186393,23]
Run Code Online (Sandbox Code Playgroud)

这是我的 webpack.config 文件:

const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
    target: "node",
    mode: "production",
    entry: {
        app: ["./src/vitaq_client.js"]
    },
    // https://webpack.js.org/configuration/node/
    // node: {
    //     global: false,
    //     __filename: true,
    //     __dirname: true,
    // },
    module: {
        // https://github.com/ivan-aksamentov/reactlandia-bolerplate-lite/issues/5#issuecomment-413306341
        exprContextCritical: false,
        rules: [
            {
                test: /\.node$/,
                use: 'node-loader'
            },
            {
                test: /coffee/,
                use: 'node-loader'
            },
            {
                test: /\.coffee$/,
                use: [ 'coffee-loader' ]
            },
            // {
            //     test: /\.map$/,
            //     use: ["source-map-loader"],
            //     enforce: "pre"
            // },
        ]
    },
    plugins: [
        new CleanWebpackPlugin(),
    ],
    output: {
        path: path.resolve(__dirname, "./build"),
        filename: "bundle.js"
    },
};
Run Code Online (Sandbox Code Playgroud)

这是我用来运行它的命令:

webpack --config webpack.config.js
Run Code Online (Sandbox Code Playgroud)

从我所做的搜索来看,似乎有一个用于代码压缩的 Terser 插件,但是正如你从我的配置文件中看到的那样,我没有加载该插件,那么 webpack 默认情况下是否使用该插件?如果不是,我怎么会从 Terser 收到错误?

如果我在配置文件中将模式设置为“开发”,那么我不会遇到问题,但我怀疑这是因为开发代码不会被缩小。

我对如何着手调试这个问题有点困惑 - 有没有办法从 Webpack 获得更多输出。我在调用 webpack 时尝试使用--json > compilation-stats.json命令行参数,但我得到了一个巨大的输出文件(43Mb),并且在所有这些文件中找不到任何帮助。

如有任何建议,我们将不胜感激。

ajn*_*eau 6

这是一个赋值错误,因为在bundle.js 的给定行中有一个无效的函数参数。

您可以通过不最小化 webpack 构建来解决此问题:

    optimization: {
        minimize: false
    }
Run Code Online (Sandbox Code Playgroud)

然后从非缩小包中的错误输出中找到分配错误行。

Invalid function parameter [bundle.js:186393,23]
Run Code Online (Sandbox Code Playgroud)

希望这对其他人有帮助。