Javascript 不排除节点_模块的网页包
我正在为我正在构建的一个节点框架使用webpack(尽管我应该承认我应该使用gulp)。当我包含EJS模块时,webpack会将其包含在已编译的源代码中,即使我明确告诉它排除node_modules dirJavascript 不排除节点_模块的网页包,javascript,webpack,Javascript,Webpack,我正在为我正在构建的一个节点框架使用webpack(尽管我应该承认我应该使用gulp)。当我包含EJS模块时,webpack会将其包含在已编译的源代码中,即使我明确告诉它排除node_modules dir module.exports = { context: __dirname, target: 'node', // ... output: { libraryTarget: 'commonjs' // ... },
module.exports = {
context: __dirname,
target: 'node',
// ...
output: {
libraryTarget: 'commonjs'
// ...
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader?{ "stage": 0, "optional": ["runtime"] }'
}
]
}
};
如您所见,我对JS文件进行了测试,并告诉它排除节点_模块;为什么忽略我的排除?尝试使用绝对路径:
exclude:path.resolve(__dirname, "node_modules")
从您的配置文件来看,似乎您只是将
node_模块
排除在使用babel loader
进行分析的范围之外,但不
要从绑定中排除节点\ u模块
和本机节点库,您需要:
target:'node'
添加到您的webpack.config.js
。这将防止(路径、fs等)被捆绑节点\u模块
var nodeExternals = require('webpack-node-externals');
...
module.exports = {
...
target: 'node', // in order to ignore built-in modules like path, fs, etc.
externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
...
};
如果在使用TypeScript时遇到此问题,您可能需要在
tsconfig.json
文件中添加skipLibCheck:true
。这对我很有效:
排除:[/bower\u组件/,/node\u模块/]
模块加载程序
一组自动应用的加载程序
每个项目都可以具有以下属性:
测试:必须满足的条件
排除:必须满足的条件
包括:必须满足的条件
加载器:一串“!”分隔的加载器
加载器:作为字符串的加载器数组
一个条件可以是RegExp、绝对路径开始,或者其中一个条件与“and”组合的数组
请参见尝试以下解决方案:
exclude:path.resolve(__dirname, "node_modules")
你能告诉我们这个项目是如何组织的吗?文件结构为什么这样做<代码>/node\u modules/将匹配节点模块中的任何可能路径,不是吗?浏览器上是否有类似的内容?(即目标:“浏览器”)我试图理解
排除:/node\u模块/
的作用。你能详细说明一下吗?如果我们忽略它会发生什么?这是一个正则表达式。如果您不使用它,节点单元模块将包含奇妙的答案和功能。@ŠimeVidas它将排除node单元模块
dir,使babel加载程序
在其上运行,但不会将其排除在bundleWelcome to StackOverflow中。如果您在其他答案的基础上提供附加值,那就更好了。在这种情况下,您的答案不会提供额外的价值,因为另一个(Alan)用户在5年前已经发布了该解决方案。一旦你有足够的声誉,你就应该投票支持它