运行ng serve
时,我收到有关我的全局CLI版本大于本地版本的警告。我没有注意到这个警告的任何问题,但我想知道这两个版本是否应该同步?此外,如果您有全球版本,是否有必要拥有本地版本?
警告:
您的全局Angular CLI版本(1.1.1)大于本地版本(1.0.6)。使用本地Angular CLI版本。
答案 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 help
,ng get/set
--global
选项,ng version
,ng doc
和{{3 }}
在构建应用程序后使用CLI的本地安装。这样,当新版本的CLI可用时,您可以更新全局安装,而不会影响本地安装。这有利于项目的稳定性。大多数ng
命令仅适用于本地版本,例如lint
,build
和serve
等。
根据CLI GitHub ng completion
,要更新CLI,您必须更新全局和本地程序包。但是,我已经使用了CLI,其中全局和本地版本到目前为止没有任何问题。如果我遇到与全局和本地CLI版本不同步相关的错误,我会在此处发布。
答案 1 :(得分:115)
答案 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)
删除当前的角度并安装特定版本。
检查版本
ng --version
如果不需要,请卸载版本
npm卸载-g @ angular / cli
如果npm vesrion <5.x
npm缓存清理
验证缓存
npm缓存验证
安装特定版本
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 ../