Global Angular CLI版本大于本地版本

Ric*_*ich 295 angular-cli

运行时,ng serve我收到有关我的全局CLI版本大于本地版本的警告.我没有注意到这个警告的任何问题,但我想知道这两个版本是否应该同步?此外,如果您有全球版本,是否有必要拥有本地版本?

警告:

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

R. *_*rds 398

要回答其中一个问题,必须同时进行全局和本地安装才能使工具正常工作.

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

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

它还会打印此消息:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

您无法new在Angular CLI项目中使用该命令.

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

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

根据CLI GitHub 自述文件,要更新CLI,您必须更新全局和本地程序包.但是,我已经使用了CLI,其中全局和本地版本到目前为止没有任何问题.如果我遇到与全局和本地CLI版本不同步相关的错误,我将在此处发布.

  • 在CLI项目目录中运行命令时,默认情况下使用CLI的本地版本。它在警告中说了很多。 (2认同)
  • @Doug 这是正确的。当使用较低版本的 CLI 为项目运行这些命令时,您会收到警告,但您可以忽略它。所有警告均表明版本不同,将使用本地 CLI。 (2认同)

Beh*_*lem 140

这就是我解决问题的方法.

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

复制并运行这些命令

ng --version
npm install --save-dev @angular/cli@latest
ng --version
Run Code Online (Sandbox Code Playgroud)

  • 执行此操作后,我的 ng 服务不起作用,命令不执行,甚至不给我例外 (3认同)
  • 我会添加第 1.5 步(如果你愿意的话)是:`rm node_modules/.bin/ng`。完美地工作。 (2认同)

hoo*_*ogw 36

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

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
Run Code Online (Sandbox Code Playgroud)

验证版本

  ng --version
Run Code Online (Sandbox Code Playgroud)


Mon*_*ani 13

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

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

ng update @angular/cli
Run Code Online (Sandbox Code Playgroud)

要么:

npm install
Run Code Online (Sandbox Code Playgroud)


Sau*_*abh 12

npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

得到以下错误错误:JSON输入的意外结束JSON输入的意外结束上面的步骤帮助从这篇文章无法更新角度到版本6


小智 9

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

\n
npm install --save-dev @angular/cli@latest\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
npm install -g @angular/cli@latest\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
ng update\n
Run Code Online (Sandbox Code Playgroud)\n

\n

接下来为每个单独的 Angular 核心包运行如下更新命令

\n
ng update @angular/cli @angular/core\n
Run Code Online (Sandbox Code Playgroud)\n

但是,我必须另外添加 \xe2\x80\x98\xe2\x80\x93force\xe2\x80\x99 和 \xe2\x80\x98\xe2\x80\x93allow-dirty\xe2\x80\x99 标志来修复所有问题其他悬而未决的问题

\n
ng update @angular/cli @angular/core --allow-dirty --force\n
Run Code Online (Sandbox Code Playgroud)\n


SUR*_*ANE 8

解决此全局和本地角度 CLI 版本问题的两种方法。
1. 为两种环境保留特定的 angular-cli 版本。
2. 转到两个环境的最新 angular-cli 版本。

1.具体的Angular-CLI版本

首先,找出您想要在全局和本地环境中保留哪个角度版本。

ng --version
Run Code Online (Sandbox Code Playgroud)

例如:这里我们保留本地 Angular CLI 版本 8.3.27

因此,我们还必须在 8.3.27 上更改全局版本。使用命令>

npm install --save-dev @angular/cli@8.3.27 -g
Run Code Online (Sandbox Code Playgroud)

此处,“-g”标志表示设置的全局 Angular-CLI 版本。

2. 转到两个 CLI 环境的最新 Angular 版本。

npm install --save-dev @angular/cli@latest -g  
npm install --save-dev @angular/cli@latest 
Run Code Online (Sandbox Code Playgroud)


Tah*_*667 7

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

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

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


Cis*_*Got 6

我的英语不流利

但如果我理解这个问题,是不是在项目中本地的 CLI 版本比全局版本旧?

您想使用这个全局更新而不是本地旧的吗?

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

页面上的更多主题:https : //docs.npmjs.com/cli/link


小智 5

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

ng --version
Run Code Online (Sandbox Code Playgroud)

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

如果你希望全局和本地 Angular cli 相同,你可以这样做

npm install --save-dev @angular/cli@1.7.4
Run Code Online (Sandbox Code Playgroud)

其中 1.7.4 是您的全局 Angular-CLI 版本

然后如果你运行ng serve --open你的代码应该运行。


Ako*_*tha 5

就我而言,我只是在项目中使用了此命令:

ng update @angular/cli
Run Code Online (Sandbox Code Playgroud)


小智 5

您只需要更新 AngularCli

npm install --save-dev @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)