Angular 中错误的含义:“应用程序依赖于使用 Angular 版本发布的库”

Atu*_*tul 5 angular-cli angular

有人可以解释一下这个错误的含义吗?

此应用程序依赖于使用 Angular 版本 14.0.7 发布的库,这需要 Angular 版本 14.0.0 或更高版本才能正常工作。考虑升级您的应用程序以使用更新版本的 Angular。

  1. 当应用程序在 Angular 版本 14.0.0 或更高版本上运行良好时,为什么它告诉我升级应用程序?它不应该告诉我升级 Angular 吗?(因为,应用程序在我的系统上找不到 Angular 14 或更高版本)

  2. 错误消息不会抱怨已安装的 Angular 版本。所以我安装的是 Angular 1.0 还是 Angular 99.0 并不重要。根据消息,如果我升级应用程序来使用,比如 Angular 99.0,它会自动处理其余的事情吗?

  3. 顺便说一下,这是我的机器上安装的内容:

Angular CLI:14.1.1
节点:16.13.1
包管理器:npm 8.3.2
操作系统:win32 x64

Angular:12.2.16
...动画、通用、编译器、编译器-cli、核心、表单
...本地化、平台浏览器、平台浏览器动态
...平台服务器、路由器、服务工作者

套餐版本

@Angular-devkit/architect 0.1202.16
@Angular-devkit/build-Angular 12.2.16
@Angular-devkit/core 12.2.16
@Angular-devkit/schematics 14.1.1(仅限 cli)
@Angular/fire 6.1.5
@schematics/angular 14.1.1(仅限 cli)
rxjs 6.6.7
typescript 4.3.5

如何安装 Angular 14.1.1?因为整个互联网都在讨论如何仅安装 Angular CLI。我也升级了。Angular CLI 是来自不同的供应商还是什么?如果不是,为什么要维护单独的版本,Angular CLI 与过时的 Angular?

Atu*_*tul 6

经过几个小时的努力,我自己找到了答案。该错误消息完全具有误导性。在这里,我们基本上必须确保 Angular 和 Angular CLI 版本相同。

在我的例子中,Angular CLI 是 14.1.1,Angular 是 12.2.16,这就是问题所在。

如果它们的版本不同,您可以如下所示卸载/安装,并确保安装与 Angular 相同的 Angular CLI 版本。

npm uninstall -g @angular/cli
npm uninstall @angular/cli
npm cache clear --force
npm install @angular/cli@12.2.16
npm install -g @angular/cli@12.2.16
Run Code Online (Sandbox Code Playgroud)

如果它仍然失败(即“ngserve”命令),那么检查它失败的包。我们可能需要安装这些软件包的适当版本。例如,我们安装 12.2.16 版本的 angular-devkit/schematics,如下所示:

npm uninstall -g @angular-devkit/schematics
npm uninstall @angular-devkit/schematics
npm cache clear --force
npm install @angular-devkit/schematics@12.2.16
npm install -g @angular-devkit/schematics@12.2.16
Run Code Online (Sandbox Code Playgroud)

另外可能还有其他依赖包。例如,假设 package.json 中提到的 ng-chartist 版本是 6.0.1。此版本与 Angular 12.2.16 不兼容。

[您可以在软件包页面检查与 Angular 版本的版本兼容性:https://www.npmjs.com/package/ng-chartist。页面上提到 Angular 版本 12.x 与 ng-chartist 版本 5x 兼容。现在,如果我们转到这里:https://www.npmjs.com/package/ng-chartist?activeTab=versions,我们可以看到 5.0.0 是 5x 系列中的最新版本]

因此,我们必须卸载现有版本并安装兼容版本,如下所示:

npm uninstall ng-chartist
npm uninstall -g ng-chartist
npm cache clear --force
npm install ng-chartist@5.0.0
Run Code Online (Sandbox Code Playgroud)

然后我们应该能够使用“ngserve”成功运行服务器