有什么方法可以知道要安装哪个与我的 Angular Core 版本兼容的 Angular CLI 版本?他们完全独立吗?
在使用 Core v5.2.8 开发现有的 Angular 应用程序时,我看到他们使用 CLI v6.0.8,所以我想知道我们应该使用哪个版本的 CLI?
Angular CLI 和 Angular Core 之间的兼容性没有任何记录。
人们做的一个常见的事情就是总是使用全局安装。然而,这可能会导致与旧项目的不一致。
您的
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 不兼容的模板。
简而言之: 您需要的是确定适合您的项目的 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。