По умолчанию, @babel/plugin-transform-runtime
разрешено выводить только ссылки на @babel/runtime
, которые работают на ^7.0.0
, потому что он не знает, какую версию вы хотели бы использовать в противном случае, и выполнение каких-либо других действий может вызвать множество проблем. пользователи. Это означает, что то, что вы хотите сделать, безопасно. Недостатком этого является то, что, если мы добавим новых помощников в будущем, ваш код не сможет использовать их версию @babel/runtime
(поскольку вы все еще можете использовать версию @babel/runtime
, в которой их нет). .
Пользователи могут указать version
в аргументах преобразования, если вы хотите специально использовать помощников, которые могли быть добавлены в Babel с 7.0.0
, например,
{
"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 / runtime как ^ 7.0.0, имея самую последнюю версию @ babel / plugin-transform-runtime?
Да, это безопасно.
Полагаю, этого не должно быть в текущей стабильной версии?
Правильно, эта проблема была в том, что люди не принимали во внимание бета-версию.