全局Angular CLI版本大于本地版本


353

运行时,ng serve我收到有关我的全局CLI版本大于本地版本的警告。我没有从该警告中注意到任何问题,但是我想知道两个版本是否应该同步?另外,如果您具有全局版本,是否必须具有本地版本?

警告:

您的全局Angular CLI版本(1.1.1)大于本地版本(1.0.6)。使用本地Angular CLI版本。


43
谁能回答为什么我们既需要本地又需要全球?
说唱

Answers:


464

要回答其中一个问题,必须同时在全局和本地安装该工具才能使用。

如果尝试ng serve在没有本地安装CLI的应用程序上运行(仅全局安装),则会出现以下错误。

您必须在Angular CLI项目中才能使用serve命令。

它还将打印此消息:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

运行该npm命令以在本地更新CLI,并避免收到警告。

其他问题:它看起来像他们不具备可同步,但它可能是最好的,他们是为了避免与工具或工具生成的代码中的任何不一致的任何异常行为。

为什么我们既需要全局安装又需要本地安装?

需要全局安装才能启动新的应用程序。该ng new <app-name>命令使用CLI的全球安装运行。实际上,如果您尝试在ng new现有CLI应用程序的文件夹结构中运行时,会收到以下可爱错误:

您不能new在Angular CLI项目中使用该命令。

这可以从全局来运行其他命令安装的ng helpng get/set--global选项ng versionng docng completion

在构建应用程序之后,将使用CLI的本地安装。这样,当新版本的CLI可用时,您可以更新全局安装,而不会影响本地安装。这有利于项目的稳定性。大多数ng命令才有意义与本地版本,如lintbuildserve等。

根据CLI GitHub 自述文件,要更新CLI,必须更新全局和本地软件包。但是,到目前为止,我使用的CLI的全局和本地版本有所不同。如果我遇到与使全局和本地CLI版本不同步有关的错误,我将在此处发布。


除了更新cli之外,没有任何办法,例如我想运行现有cli版本的安装模块。还是没有办法强制执行命令时使用本地cli而不是全局cli?
Mohammed Yassine CHABLI

3
在CLI项目目录中运行命令时,默认情况下使用CLI的本地版本。它在警告中说了很多。
理查兹

但是我不知道为什么这种解决办法对我不起作用。如果我在package.json中提到我的angular-cli =“ ^ 1.0.6”的值怎么办。这项工作但仍然不了解会发生什么?
Mohammed Yassine CHABLI

1
npm卸载-g @ angular / cli,npm缓存清除--force,npm安装@ angular / cli
Hesham Yassin

1
@道格没错。在使用较低版本的CLI的项目中运行这些命令时,您会收到警告,但是可以忽略它。所有警告说版本是不同的,并且将使用本地CLI。
R.理查兹

152

这就是我解决问题的方式。

在本地安装最新的Angular CLI软件包

复制并运行这些命令

ng --version
npm install --save-dev @angular/cli@latest
ng --version

1
我将添加步骤1.5(如果愿意)是:rm node_modules/.bin/ng。工作完美。
bretonics

41

这对我有用:它将本地版本更新为最新版本

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

验证版本

  ng --version

我将其转换为一个古老的Windoze批处理命令:CALL npm install --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ latest CALL npm install CALL ng --version
Lee H

1
做你的步骤。尝试ng serve --open并得到“此版本的CLI仅与Angular 5.0.0或更高版本兼容。请访问下面的链接以找到有关如何更新Angular的说明。angular
87

17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

然后在您的本地项目包中:

rm -rf node_modules dist 
npm install --save-dev @angular/cli@latest
npm i 
ng update @angular/cli 
ng update @angular/core
npm install --save-dev @angular-devkit/build-angular

出现以下错误错误:JSON输入的意外结束JSON输入的意外结束这篇文章帮助的上述步骤无法将angular更新到版本6


1
npm install --save-dev @ angular-devkit / build-angular-确实帮助ng update @ angular / cli->确实创建了angular.json和其他更新。
MPV

15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

您可以通过运行以下命令来自动更新现有配置:

ng update @angular/cli

要么:

npm install

8

就我而言,我只是将此命令用于项目中:

ng update @angular/cli

4

运行以下命令: npm install --save-dev @angular/cli@latest

运行上述命令后,控制台可能会弹出以下消息

Angular CLI配置格式已更改,可以通过运行以下命令自动更新现有配置:ng update @ angular / cli


4

我英文不太流利

但是,如果我了解问题所在,是否是在项目本地中使用的CLI版本比全局版本中的旧?

您是否要使用此全球更新而不是本地的旧版本?

如果是这样,一个非常简单的方法就足以在项目目录中运行 npm link @angular/cli

有关页面主题的更多信息:https : //docs.npmjs.com/cli/link


2

首先通过运行找出全局angular-cli版本

ng --version

上面的代码将显示什么版本是全局和局部angular-cli版本。

如果您希望全局和局部角度cli相同,则可以执行

npm install --save-dev @angular/cli@1.7.4

其中1.7.4是您的全局angular-cli版本

然后,如果您运行ng serve --open您的代码,则应运行。


2

您只需要更新AngularCli

npm install --save-dev @angular/cli@latest

0

更新工作区的Angular CLI(本地)

npm install --save -dev @angular/cli@latest

注意:如果安装正确,请确保使用带有-g命令的全局版本。

npm install -g @angular/cli@latest

运行更新命令以获取需要升级的所有依赖项的列表

ng update

对于每个单独的Angular核心软件包,如下所示的Next Run update命令

ng update @angular/cli @angular/core

但是,我必须另外添加“ -force”和“ -allow-dirty”标志命令来修复所有其他未解决的问题。

ng update @angular/cli @angular/core --allow-dirty --force

0

这应该可以解决问题:

ng update @angular/cli @angular/core

0

做这些事

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force

1
由于该问题已有3年之久,并且已有14个答案,因此,如果您解释了为什么答案没有所有现有答案都有价值的原因,那么您的答案将更具价值。
David Buck

-1

npm install --save-dev @ angular-devkit / build-angular-帮助ng更新@ angular / cli->确实创建了angular.json和其他更新。

收集已安装的依赖项...找到58个依赖项。

 ** Executing migrations for package '@angular/cli' **
            Updating karma configuration
            Updating configuration
            Removing old config file (.angular-cli.json)
            Writing config file (angular.json)
            Some configuration options have been changed, please make sure to update any  npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.

-1

删除当前的角度并安装特定版本。

  1. 检查版本

    ng --version

  2. 如果不需要,请卸载版本

    npm卸载-g @ angular / cli

  3. 如果npm vesrion <5.x

    npm缓存清理

  4. 验证缓存

    npm缓存验证

  5. 安装特定版本

    npm install -g @ angular / cli @ major.minor.patch

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.