我正在尝试使用 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),并且在所有这些文件中找不到任何帮助。
如有任何建议,我们将不胜感激。
这是一个赋值错误,因为在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)
希望这对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
4578 次 |
| 最近记录: |