Global Angular CLI版本大于本地版本

时间:2017-06-13 15:28:43

标签: angular-cli

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

警告:

  

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

22 个答案:

答案 0 :(得分:346)

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

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

  

您必须在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的全局安装运行。实际上,如果您尝试在现有CLI应用程序的文件夹结构中运行ng new,则会收到这个可爱的错误:

  

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

可以从全局安装运行的其他命令包括ng helpng get/set --global选项,ng versionng doc和{{3 }}

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

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

答案 1 :(得分:115)

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

Install latest Angular CLI package locally

复制并运行这些命令

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

答案 2 :(得分:28)

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

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

验证版本

  ng --version

答案 3 :(得分:11)

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

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

ng update @angular/cli

或:

npm install

答案 4 :(得分:9)

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输入意外结束 以上步骤对这篇文章Can't update angular to version 6

有所帮助

答案 5 :(得分:4)

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

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

  

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

答案 6 :(得分:3)

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

ng update @angular/cli

答案 7 :(得分: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,您的代码应该运行。

答案 8 :(得分:2)

我英语说不流利

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

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

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

中运行

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

答案 9 :(得分:2)

两种解决此全局和局部角度CLI版本问题的方法。
1.对于两种环境,请保留特定的angular-cli版本。
2.在两种环境下都转到最新的angular-cli版本。

1。特定的angular-cli版本

首先,找出要在全局和局部环境中保留的角度版本。

ng --version

例如:,此处我们保留本地的角度CLI版本8.3.27

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

npm install --save-dev @angular/cli@8.3.27 -g

在这里,“-g”标志表示已设置的全局angular-cli版本。

2。转到两个CLI环境的最新角度版本。

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

答案 10 :(得分:1)

这就是我修复它的方式。在Visual Studio Code的终端中,首先清除缓存

npm cache clean --force

然后更新了cli

ng update @angular/cli

如果此后缺少任何模块,请使用以下命令

npm install

答案 11 :(得分:1)

还有另一种避免全局安装的方法,创建新应用。 就我而言,我使用的是Angular 9,但客户需要Angular 8。

# create an empty directories
mkdir angular-8-cli
mkdir my-angular-8-project

# init empty npm project
cd angular-8-cli
npm init -y

# install local angular 8 cli
npm i @angular/cli@8

# go to your angular 8 project
cd ../my-angular-8-project

# use previously installed angular 8 cli to create a new angular 8 project
../angular-8-cli/node_modules/.bin/ng new my-angular-8-project --directory=.

答案 12 :(得分:0)

如果您只想关闭此警告,请运行命令

ng config -g cli.warnings.versionMismatch false

这很有用,因为有时您希望拥有不同的本地和全球版本。例如,您可能拥有最新的全局版本的 Angular,因为您将在新项目中使用它,但必须在较旧的 Angular 版本中运行旧项目。

答案 13 :(得分:0)

这是因为全局和局部角度版本不同造成的。要更新全局 angular 版本,首先需要在命令提示符或 vs 代码终端中运行以下命令

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

之后,如果发现任何漏洞,请运行以下命令进行修复

npm audit fix

答案 14 :(得分:0)

如果升级了Angular版本,则需要更改

的版本
@angular-devkit/build-angular

在您的

内部
package.json

从旧版本升级到新的角度构建版本。

我已升级到Angular 10,所以我需要转到 https://www.npmjs.com/package/@angular-devkit/build-angular 并根据Angular 10检查哪个版本。

以我为例,我发现该版本必须为0.1001.7,因此我在package.json中将旧版本更改为该版本并运行

npm --save install

足够了。

答案 15 :(得分:0)

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

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

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

npm install -g @angular/cli@latest

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

ng update

下一步为每个单独的Angular核心软件包运行以下更新命令

ng update @angular/cli @angular/core

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

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

答案 16 :(得分:0)

您只需要更新AngularCli

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

答案 17 :(得分:0)

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

  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

答案 18 :(得分:0)

npm install --save-dev @ angular-devkit / build-angular-确实帮助ng update @ 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.

答案 19 :(得分:-1)

只要做这些事情

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

答案 20 :(得分:-1)

这应该可以解决问题:

ng update @angular/cli @angular/core

答案 21 :(得分:-1)

使用 --module 参数指定模块。例如,如果主模块是 app.module.ts,请运行:

ng g c new-component --module app

或者如果您在其他目录中,则

ng g c component-name --module ../