通天塔核心'transform'函数找不到插件



我有一个使用babel-coretransform函数的全局节点模块。 我的模块根目录没有.babelrc。 它需要一个文件,基本上只是使用transform来"编译"它。

const result = transformSync(content, {
filename: src,
});

有一个.babelrc文件以及该文件,我确实能够找到它

{
"presets": ["@babel/preset-env"]
}

但它抱怨找不到正确的"@babel/preset-env",因为该模块是与我的一起安装的,而不是正在转译的文件/.babelrc。

我在 https://babeljs.io/docs/en/options 中尝试了很多选项,但仍然无法使其工作。

如何配置transform以便它在从转译文件的文件夹中加载 babel 配置时从我的模块获取插件?

根据设计,Babel 的插件加载器会相对于引用它们的配置文件搜索插件,或者对直接在transformSync选项中传递的插件使用cwd。对此的控制不会暴露给调用 Babel 的实用程序。

更改这些语义将意味着 Babel 配置文件的行为会根据加载它的工具而有所不同,这对用户来说非常不一致,特别是考虑到拥有配置文件格式的主要好处之一是配置可以轻松地在调用 Babel 的多个工具之间共享, 例如,一个用于测试,一个用于捆绑。

如果您希望用户能够自定义您的工具,听起来您可能真正想要的是您自己的工具完全独立的配置文件,因此您可以为此定义所需的任何语义。

最新更新