如果我使用babel-plugin-transform-runtime
插件,那么我的代码将import
/ require
babel-runtime
,而不是将所有这些帮助函数包含在内。这很好,但它使我的库具有依赖babel-runtime
。我宁愿做的是让Babel提取一个额外的文件(./babel-runtime
)并将其与其他输出文件放在一起,这样我就不必将它包含在外部依赖项中。也就是说,我不需要在我的库使用的任何地方添加package.json
。这可能吗?
答案 0 :(得分:1)
您可以使用babel-runtime
插件中的moduleName
选项导入自定义模块而不是transform-runtime
:
{
"plugins": [
["transform-runtime", {
"moduleName": "./babel-runtime"
}]
]
}
答案 1 :(得分:1)
我找到的唯一解决方案是不使用babel-plugin-transform-runtime
插件并将exclude: ['transform-regenerator']
添加到您的配置中。这将阻止Babel添加对再生器的依赖。这也意味着您的代码不会在旧浏览器中运行。
如果您需要支持旧版浏览器,可以尝试使用fast-async
。它说有一种方法可以在索引文件中内联依赖,但我还没有尝试过。我相信这假设浏览器支持Promises但不支持async / await。