Angular CLI 版本与 Angular Core 版本之间的兼容性?

问题描述 投票:0回答:2

有什么方法可以知道要安装哪个与我的 Angular Core 版本兼容的 Angular CLI 版本?他们完全独立吗?

在使用 Core v5.2.8 开发现有的 Angular 应用程序时,我看到他们使用 CLI v6.0.8,所以我想知道我们应该使用哪个版本的 CLI?

Angular CLI 和 Angular Core 之间的兼容性没有任何记录。

angular command-line-interface angular-cli
2个回答
2
投票

人们做的一个常见的事情就是总是使用全局安装。然而,这可能会导致与旧项目的不一致。

您的

package.json
中的版本应该始终兼容。

为了确保您运行本地版本,请执行以下操作:

npm run -- ng generate component foo

而不是这个:

ng generate component foo

它将始终使用本地版本。

Yarn 传递所有参数,因此不需要丑陋的注释:

yarn run ng generate component foo

一个很好的例子是Angular 如何处理服务 DI。 而在以前的版本中,需要将每个服务作为提供者添加到应用程序模块中。

这在版本 6 中已更改,因此这实际上非常相关:

在 Angular v6 及更高版本中,

@Injectable
装饰器进行了扩展,具有导致不同样板的功能:

之前:

@Injectable()

之后:

@Injectable({
  providedIn: 'root'
})

从而无需将所有服务添加到应用程序内的应用程序模块。

因此从 CLI v6 创建服务会生成一个与 v5 不兼容的模板。


0
投票

简而言之: 您需要的是确定适合您的项目的 Angular 版本(Angular-core)。您可以在此处和/或此处查看官方兼容性列表。在列表中,您还可以找到匹配/兼容的 Node.js 版本。 接下来,您必须确保 Angular CLI 版本。这还不错,因为 Angular CLI 版本似乎并不总是与 Angular 核心版本匹配。 因此,您必须检查 Angular 选择的版本是否与 angular-cli 版本匹配,如果不匹配,则尝试找到更接近的版本(如果可能的话,具有相同主版本号的上层版本)。例如:如果您希望使用 Angular(即 Angular-Core)版本 16.2.12,因为它似乎是最后的 16.x.x 版本,那么您可以选择 Angular-cli 16.2.11 版本,因为 Angular-cli 16.2。 12 版本不存在(至少截至 2024 年 1 月 13 日)。您可以在这里找到 Angular-Core 的版本历史记录,在这里找到 Angular-cli。

© www.soinside.com 2019 - 2024. All rights reserved.