【发布时间】: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),我找不到任何帮助。
如有任何建议,我们将不胜感激。
【问题讨论】: