babel-core'transform'函数找不到插件

时间:2018-10-15 02:24:18

标签: node.js babeljs node-modules babel

我有一个使用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配置时从我的模块中获取插件?

1 个答案:

答案 0 :(得分:0)

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

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

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