@babel/runtime和@babel/plugin-transform-runtime是否应该使用相同的版本(例如,两者都是7.2.0 )?或者我(作为库作者)可以将@babel/runtime依赖项指定为^7.0.0,同时使用最新的@babel/plugin-transform-runtime
我知道在Babel 7的beta版本中,beta.56 (参见https://stackoverflow.com/a/51686837/2148762)发生了重大变化,但我猜想现在的稳定版本不应该是这样的?
我问这个问题的原因是,理想情况下,我希望在不同的包之间共享来自@babel/runtime的助手,对我来说,开放版本范围似乎是个好主意。但同时,我不确定我应该走多低(^7.0.0还是^7.2.0),以及@babel/runtime和@babel/plugin-transform-runtime之间是否存在关于版本号的隐含契约。
发布于 2019-01-06 23:26:52
默认情况下,@babel/plugin-transform-runtime只允许输出对在^7.0.0上工作的@babel/runtime的引用,因为它不知道您想要使用哪个版本,而且任何其他操作都会给用户带来很多问题。这意味着你想做的事是安全的。这样做的缺点是,如果我们继续添加新的帮助程序,您的代码将无法利用它们的@babel/runtime版本(因为您可能仍然在使用没有它们的@babel/runtime版本。
用户可以在转换的参数中指定version,如果您希望特别使用自7.0.0以来可能已经添加到Babel中的帮助程序,例如,
{
"plugins": [
["@babel/plugin-transform-runtime", { version: "^7.2.0" }],
]
}然后,需要在您的"@babel/runtime": "^7.2.0"中包含package.json。
例如,由于对较新的装饰师提案的支持直到Babel 7.1.5才开始,如果您使用transform-runtime和非legacy装饰器,那么装饰器助手仍然会插入到使用装饰器的每个文件中,而不是从@babel/runtime导入它。要获得共享助手,需要在version: "^7.1.5"选项中指定transform-runtime。
我(作为一个库作者)可以将@babel/运行时依赖指定为^7.0.0,同时拥有最新的@babel/运行时吗?
是的,这是安全的。
我猜现在的稳定版本应该不再是这种情况了?
没错,这个问题是因为人们没有考虑到beta版本。
https://stackoverflow.com/questions/54053777
复制相似问题