更新的"babel"安装已损坏:对预设配置不满意



我最近更新了系统,因此不得不重新安装一些工具链。这打破了我对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的文档,但老实说,我被卡住了。

我怎样才能用当代的babel6来做这件作品?


很抱歉提出了一个可能非常天真和愚蠢的问题。我很少使用JS和相关工具。

这个问题实际上有多层。

第一个问题babel-clibabel-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"
]
}
]
]
}

希望这能帮助某人不要浪费大量的时间。。。

最新更新