Javascript 意外字符'@';对于“网页包”;“外部”;选项

Javascript 意外字符'@';对于“网页包”;“外部”;选项,javascript,typescript,webpack,Javascript,Typescript,Webpack,我在webpack中发现了很多关于“意外字符“@”的信息,但没有一个与externalswebpack选项的错误相关,也没有任何一个与此相关的信息。我以前用过这个,有,没有,没有,没有任何问题,所以我不知道为什么webpack现在变得暴躁 const TerserPlugin=require('terser-webpack-plugin'); module.exports=()=>{ 返回{ 模式:"生产",, 目标:'节点', 条目:'./build.ts', 输出:{ 路径:_dirname

我在webpack中发现了很多关于“意外字符“@”的信息,但没有一个与
externals
webpack选项的错误相关,也没有任何一个与此相关的信息。我以前用过这个,有,没有,没有,没有任何问题,所以我不知道为什么webpack现在变得暴躁

const TerserPlugin=require('terser-webpack-plugin');
module.exports=()=>{
返回{
模式:"生产",,
目标:'节点',
条目:'./build.ts',
输出:{
路径:_dirname,
文件名:`build.js`
},
节点:{
__dirname:false,
__文件名:false,
},
决心:{
扩展名:['.ts','.js'],
主字段:['es2015'、'模块'、'主'、'浏览器']
},
模块:{
规则:[
{
测试:/\.ts$/i,
加载器:“ts加载器”,
选项:{configFile:'tsconfig build.json'},
排除:[/\/node\u模块\/]
}
]
},
外部:['chalk','@tuberal/util'],
优化:{
对,,
最小化:[新的TerserPlugin({
三种选择:{
mangle:错,
输出:{max_line_len:511}
}
})],
},
};
};
@是我想要排除的包名的必要部分,我以前也排除过这样的包,所以这既神秘又烦人

有人知道这里出了什么问题吗?

我找到了答案,但肯定不是我想要的答案

如果我使用包
webpack node externals
,我可以将所有
node\u模块外部化,如下所示:

const nodeExternals = require('webpack-node-externals');

 // ...

    externalsPresets: { node: true },
    externals: [nodeExternals()],

在这种特殊情况下,排除所有节点外部恰好可以,因此
webpack节点外部
解决了我眼前的问题。但是,如果我想更具选择性,并且想排除名称中带有@的包,那么我的手上仍然有一个谜。

我面临着与“@vue/composition api”相同的问题。你填了错误报告什么的吗?没有,我还没有提交错误报告。我不确定这是一个bug,还是我设置的不正确。然而,它开始听起来像一只虫子。奇怪的是,我现在有其他项目使用@没有任何问题,所以我不知道有什么区别足以描述这个bug。你的工作项目使用相同版本的webpack吗?我使用的是webpack 5.37.0如果我将
类型:“umd”
添加到
节点,则不会发生错误。我使用的是webpack 5.37.0,其中@起作用,而它不起作用。但就像你一样,我用的是“umd”。