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