提问人:Nimasha Madhushani 提问时间:1/7/2023 更新时间:1/10/2023 访问量:4420
Angular 14 CLI 与节点版本 18.12.1 不兼容
Angular 14 CLI is not compatible with node version 18.12.1
问:
Angular 15 CLI 与节点版本 18.12.1 兼容。但是在降级到 Angular CLI 14 后,现有的节点版本不受支持。我正在寻找与 Angular 14 CLI 兼容的最大节点版本。
答:
Angular 14 不支持最新的节点版本。但与 Angular 15 兼容。
为什么 angular 15 与最新的节点版本不兼容?
Node v18.13.0 (LTS) 发布于 2023-01-06,所以是在 Angular 15.0.0 (2022-11-16) 发布之后。因此,Angular 15.0.0 仅保证与 Node 18.10.x 的兼容性。
但是,在节点版本 14.17.3 中,找不到模块。Node 版本 16.16.0 适用于 Angular 14。'node:assert'
降级节点版本的步骤:
以管理员身份运行命令提示符。
然后,使用 检查已安装的节点版本。
node -v
现在,您必须安装 .您可以通过此链接下载 NVM 可执行文件 () 并将其安装在您的计算机上。然后对于 Windows 和 nvm ,命令 是:。
nvm
nvm-setup.exe
nvm install <version>
NVM 是 Node Version Manager 的缩写,是一个命令行工具,用于管理和切换到不同版本的 Node.js。
现在,您必须检查计算机中安装的nvm列表。自 在命令提示符下运行。
nvm list
之后,它显示当前使用 64 位的版本 可执行
然后,您可以将其切换到您期望的版本。
nvm use <version>
现在命令提示符将显示如下,
Now using node v16.16.0 (64-bit)
Comand 提示符:
C:\Users\Acer>nvm -v
1.1.10
C:\Users\Acer>nvm install v16.10.0
Downloading node.js version 16.10.0 (64-bit)...
Extracting node and npm...
Complete
C:\Windows\system32>nvm list
18.12.1
16.16.0
16.10.0
* 14.17.3 (Currently using 64-bit executable)
C:\Windows\system32>nvm use 16.16.0
Now using node v16.16.0 (64-bit)
C:\Windows\system32>node -v
v16.16.0
C:\Users\Acer>nvm list
18.12.1
* 16.16.0 (Currently using 64-bit executable)
16.10.0
14.17.3
现在,您可以看到 .* 16.16.0 (Currently using 64-bit executable)
评论
我建议明确区分“兼容”和“被支持”。
与特定 Angular 版本兼容的 Node.js 版本
如果 Node.js 版本与特定的 Angular 版本兼容,这意味着您可以同时使用两者,但它们不一定经过组合测试。
例如 的显示此版本与 (14.x.x) 的所有次要版本和补丁版本以及等于或大于(甚至最新的 19.x.x)的所有版本兼容:package.json
@angular/cli 14.0.0
Node.js 14
Node 16.10.0
"node": "^14.15.0 || >=16.10.0",
提示:您可以在 https://www.npmjs.com/package/@angular 下找到上述信息,当转到“版本”选项卡时,选择您感兴趣的版本,然后返回“代码”选项卡,在其中打开。package.json
特定 Angular 版本支持的 Node.js 版本
如果一个 Node.js 版本(官方)被特定的 Angular 版本支持,这意味着 Angular 开发人员已经组合测试了它们,如果组合导致任何问题,他们将提供支持(如果仅给出“兼容性”,则后者不会出现这种情况)。因此,“支持”是一个比“兼容”更严格的标准。
例如 支持 (18.10.x) 的所有修补程序版本。这是有道理的,因为是在不久前发布的。@angular/cli 15.0.0
Node.js 18.10
Node.js 18.10.0
Angular 15
提示:您可以在 Angular 的官方更新文档中找到支持的 Node.js 版本。例如:https://angular.io/guide/update-to-version-15Angular 15
结论
线程标题实际上应该为“为什么 Angular CLI 14 不支持节点版本 18.12.1”。另一方面,兼容性将由任何未来的 Node.js 版本实现,因为 Angular CLI 14 声明: .它甚至可能与“Node.js 18.12.1”顺利运行。至少在我自己的测试中,到目前为止还没有出现任何问题。>=16.10.0
Angular 14 CLI
评论