我最近更新了系统,因此不得不重新安装一些工具链。这打破了我对babel
的使用。
更新前(正在工作(
我安装了babel
,如下所示。。。
npm install -g babel-cli
npm install -g babel-preset-env
在通过nodeenv集成了CCD_ 3的Python虚拟环境中。这将在我的PATH
中给我babel
。
接下来,我在当前工作目录中有一个.babelrc
,内容如下:
{
"compact": false,
"presets": [
[
"env",
{
"targets": [
"cover 99.5% in EU",
"Firefox ESR",
"not ie"
]
}
]
]
}
然后,我将调用babel
,如下所示:
babel input.js -o output.js
这在两三年前的设置中运行良好。.babelrc
文件本身可能比它还要老几年。
更新后(断开(
我正在处理:
$ babel --version
6.26.0 (babel-core 6.26.3)
$ node --version
v18.8.0
$ npm --version
8.19.1
配置、通过nodeenv
的集成以及我调用babel
的方式是相同的。babel input.js -o output.js
失败如下:
Error: Couldn't find preset "env" relative to directory "/working/directory"
at /env/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
[...]
我试着理解当前关于预设、babel-preset-env和共同配置babel的文档,但老实说,我被卡住了。
我怎样才能用当代的babel
6来做这件作品?
很抱歉提出了一个可能非常天真和愚蠢的问题。我很少使用JS和相关工具。
这个问题实际上有多层。
第一个问题:babel-cli
和babel-preset-env
是过时的包。babel
现在使用不同的结构,因此必须按照以下方式安装:
npm install -g @babel/core @babel/cli @babel/preset-env
这也意味着在配置文件中从"env"
更改为"@babel/preset-env"
。
第二个问题:尽管;全局";安装以前工作过,这实际上是babel并不真正支持的。CCD_ 18将无法定位CCD_ 19。
可以做两件事:在本地安装上面提到的三个包,即不使用-g
标志,而是使用--save-dev
。这会将所有内容转储到当前工作目录中。如果不希望这样做,那么就有一个丑陋的破解方法:将Python虚拟环境中的node_modules
链接到工作目录中,即
ln -s /path/to/python/env/lib64/node_modules node_modules
第三个问题:配置过时。这是详细信息,但该区域现在被命名为alt-EU
,而不是EU
。此外,not ie
不再是一个有效的选项。然而not ie <= 11
是。最终,新配置必须如下所示:
{
"compact": false,
"presets": [
[
"@babel/preset-env",
{
"targets": [
"cover 99.5% in alt-EU",
"Firefox ESR",
"not ie <= 11"
]
}
]
]
}
希望这能帮助某人不要浪费大量的时间。。。