Javascript 如何在webpack中使用babel loader选择性地处理node_模块中的代码?

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)/,

这是我们的后续报道

我有一些第三方代码(react组件),我将其打包为ES模块(使用
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,我很感激。请随时将您的评论作为答案发布,以便我可以接受。现在完成。谢谢。:)