我怎样才能从别的地方访问项目的babel相关的代码?

这是一个奇怪的需求,但我不认为这是一个X / Y问题。 我需要从我自己的工具访问一个项目的babel相关的依赖项和configuration。 我的工具可能是devDep,或者全局安装,或者用npx运行; 我无法知道。

我知道这可以用babel-register来完成,因为像babel-tape-runner这样的优秀工具可以做到这一点。 不过,就我而言,我不能只require('babel-register') ,然后需要其他文件; 我正在使用module._compile 。 (写出临时文件,运行它,然后取消链接在这种情况下不是一个好的select,因为它可能会发生数百或数千次)。

有没有什么方法来使用用户的项目本地Babelconfiguration和预设和插件从某处读取的一些代码,在将这些东西传递给module._compile

原来这里的正确答案是不使用babel-register 。 我快速浏览了Jest是如何做到这一点的,他们直接使用了babel-core 。 将babel.transform(code, { extends: babelRc }).code module._compilemodule._compile工作得很好。 整个比较可以在这里find 。