Javascript 如何在webpack中使用babel loader选择性地处理node_模块中的代码?
这是我们的后续报道 我有一些第三方代码(react组件),我将其打包为ES模块(使用Javascript 如何在webpack中使用babel loader选择性地处理node_模块中的代码?,javascript,webpack,babeljs,babel-loader,Javascript,Webpack,Babeljs,Babel Loader,这是我们的后续报道 我有一些第三方代码(react组件),我将其打包为ES模块(使用pkg.module入口点)。这非常有效(您可以获得模块连接和树抖动),但所包含的代码不会用babel传输,因为在大多数配置示例中,我在我的Web包配置的babel loader部分中排除了node_模块,如下所示: { ... module: { rules: [ { exclude: /(node_modules)/,
pkg.module
入口点)。这非常有效(您可以获得模块连接和树抖动),但所包含的代码不会用babel传输,因为在大多数配置示例中,我在我的Web包配置的babel loader部分中排除了node_模块
,如下所示:
{
...
module: {
rules: [
{
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
...
}
}
]
},
...
}
{
...
module: {
rules: [
{
include: [/node_modules\/@my-scope/, /src/],
use: {
loader: 'babel-loader',
...
}
}
]
},
...
}
所以,当我运行webpack时,会出现意外的令牌错误。根据链接的答案,我从使用exclude
切换到include
,可以选择从node\u模块导入一些包,如下所示:
{
...
module: {
rules: [
{
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
...
}
}
]
},
...
}
{
...
module: {
rules: [
{
include: [/node_modules\/@my-scope/, /src/],
use: {
loader: 'babel-loader',
...
}
}
]
},
...
}
这似乎对我有效(在我运行webpack时不再出现意外的令牌错误),但我不能100%确定它正在做我认为应该做的事情
这个解决方案看起来正确吗?有更好的办法吗?我觉得这个解决方案还可以。如果include开始变得复杂,您可以用一个函数替换它,并使用逻辑在那里进行过滤。我觉得解决方案还可以。如果include开始变得复杂,你可以用一个函数替换它,并使用逻辑在那里进行过滤。谢谢@JuhoVepsäläinen,我很感激。请随时将您的评论作为答案发布,以便我可以接受。现在完成。谢谢。:)