【问题标题】:How can I debug this Webpack error - ERROR in bundle.js from Terser如何调试此 Webpack 错误 - 来自 Terser 的 bundle.js 中的错误
【发布时间】:2020-01-16 15:35:28
【问题描述】:

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

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

ERROR in bundle.js from Terser
Invalid function parameter [bundle.js:186393,23]

这是我的 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"
    },
};

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

webpack --config webpack.config.js

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

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

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

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

【问题讨论】:

    标签: node.js webpack


    【解决方案1】:

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

    你可以通过不最小化 webpack 构建来解决这个问题:

        optimization: {
            minimize: false
        }
    

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

    Invalid function parameter [bundle.js:186393,23]
    

    希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 2018-03-03
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      相关资源
      最近更新 更多