@ babel / runtime和@ babel / plugin-transform-runtime版本

时间:2019-01-05 16:12:03

标签: babeljs

@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之间是否存在隐含契约版本号。

1 个答案:

答案 0 :(得分:2)

默认情况下,@babel/plugin-transform-runtime只允许输出对@babel/runtime起作用的对^7.0.0的引用,因为它不知道您将要使用的版本,以及其他操作会给用户带来很多问题。这意味着您要执行的操作是安全的。缺点是,如果我们不断添加新的助手,您的代码将无法利用它们的@babel/runtime版本(因为您可能仍在使用{没有它们。

如果您要专门使用自@babel/runtime之后可能已添加到Babel中的助手,则用户可以在转换参数中指定version,例如

7.0.0

然后将要求您在{ "plugins": [ ["@babel/plugin-transform-runtime", { version: "^7.2.0" }], ] } 中包含"@babel/runtime": "^7.2.0"

例如,由于直到Babel 7.1.5才支持较新的装饰器提案,因此,如果您使用package.json和非transform-runtime装饰器,则装饰器助手仍将插入到每个使用装饰器的文件,而不是从legacy导入文件。要获取共享帮助器,您需要在@babel/runtime的选项中指定version: "^7.1.5"

  

我(作为图书馆作者)可以在拥有最新的@ babel / plugin-transform-runtime的同时将@ babel / runtime依赖性指定为^ 7.0.0吗?

是的,这很安全。

  

我猜测当前的稳定版本将不再是这种情况?

正确,该问题是因为人们没有考虑Beta版本。