我正在使用 webpack 4 并且我安装了一个包含很多子文件夹的模块,结构是:
/node_modules/my_main_package/what_i_need_to_include
我需要排除整个node_modules除了what_i_need_to_include. 这是我webpack.base.babel迄今为止尝试过的:
第一种方法:
module: {
rules: [
{
test: /\.js$/,
exclude: '/node_modules/',
include: '/node_modules/my_main_package/what_i_need_to_include',
use: {
loader: 'babel-loader',
options: options.babelQuery,
},
},
...
Run Code Online (Sandbox Code Playgroud)
第二种方法:
{
test: /\.js$/,
exclude: '/node_modules\/(?!my_main_package/what_i_need_to_include).*/'
...
}
Run Code Online (Sandbox Code Playgroud)
两次都没有成功。
我怎样才能让它工作?我究竟做错了什么?
Mat*_*att 14
值得注意的是该页面上的解决方案不需要复杂的正则表达式,并且在技术上是受支持的方法。
module: {
rules: [
{
test: /\.js$/,
exclude: [
// Use an object instead of a string
{
test: path.resolve(__dirname, 'node_modules'),
// Exclude the following from the exclusion
exclude: path.resolve(__dirname, 'node_modules/name-of-package')
}
],
use: {
loader: 'babel-loader',
// ...
},
},
]
},
Run Code Online (Sandbox Code Playgroud)
ass*_*ler 10
我要感谢熊先生,他给了我一个有效解决方案的链接,我将自己回答我的问题以分享解决方案,因为很少有人阅读评论,这可能是其他人的问题。这是解决方案:
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules\/(?!(my_main_package\/what_i_need_to_include)\/).*/,
use: {
loader: 'babel-loader',
options: options.babelQuery,
},
},
...
}
Run Code Online (Sandbox Code Playgroud)
希望它可能会有所帮助。
| 归档时间: |
|
| 查看次数: |
6800 次 |
| 最近记录: |