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

hzi*_*oun 5 command-line-interface angular-cli angular

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

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

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

mch*_*l18 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()
Run Code Online (Sandbox Code Playgroud)

后:

@Injectable({
  providedIn: 'root'
})
Run Code Online (Sandbox Code Playgroud)

从而消除了将所有服务添加到应用程序内的应用程序模块的必要性。

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