我有一个使用babel-core transform函数的全局节点模块。
模块的根目录没有.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的插件加载器会搜索与引用它们的配置文件相关的插件,或者将cwd用于直接在transformSync选项中传递的插件。调用Babel的实用程序不会对此进行控制。

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

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

07-24 09:48
查看更多