当运行ng serve时,我得到一个关于我的全局CLI版本大于本地版本的警告。我没有注意到这个警告有任何问题,但我想知道两个版本是否应该同步?另外,如果你有一个全局版本,是否有必要有一个本地版本?
警告:
你的Angular CLI全局版本(1.1.1)比你的本地版本(1.0.6)更高。使用的是Angular CLI的本地版本。
当运行ng serve时,我得到一个关于我的全局CLI版本大于本地版本的警告。我没有注意到这个警告有任何问题,但我想知道两个版本是否应该同步?另外,如果你有一个全局版本,是否有必要有一个本地版本?
警告:
你的Angular CLI全局版本(1.1.1)比你的本地版本(1.0.6)更高。使用的是Angular CLI的本地版本。
当前回答
还有另一种方法可以避免全局安装以创建新应用程序。 就我而言,我使用的是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=.
其他回答
在我的情况下,我只是在项目中使用了这个命令:
ng update @angular/cli
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
NPM install——save-dev @angular-devkit/build-angular - did帮助ng更新了@angular/cli -> did创建了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.
要回答其中一个问题,必须同时进行全局和本地安装,以便工具能够工作。
如果您尝试在没有CLI本地安装(仅限全局安装)的应用程序上运行ng serve,您将得到以下错误。
你必须在Angular CLI项目中才能使用serve命令。
它还将打印以下消息:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
运行npm命令在本地更新命令行,并避免您所得到的警告。
其他问题:看起来它们不需要同步,但是为了避免工具的任何不寻常行为,或者工具生成的代码的任何不一致,最好是同步。
为什么我们同时需要全局安装和本地安装?
启动新应用程序需要全局安装。ng new <app-name>命令在CLI全局安装环境下执行。事实上,如果你试图在现有CLI应用程序的文件夹结构中运行ng new while,你会得到这个可爱的错误:
你不能在Angular CLI项目中使用new命令。
其他可以在全局安装中运行的命令有ng help、带——global选项的ng get/set、ng version、ng doc和ng completion。
CLI的本地安装是在构建应用程序之后使用的。这样,当CLI的新版本可用时,您可以更新全局安装,而不会影响本地安装。这有利于项目的稳定性。大多数ng命令只适用于本地版本,比如lint、build和serve等。
根据CLI GitHub自述,要更新CLI,必须更新全局和本地包。但是,到目前为止,我已经使用了CLI,其中全局和本地版本不同,没有任何问题。如果我遇到过与全局和本地CLI版本不同步相关的错误,我会在这里发布。
有两种方法可以解决这个全局和局部的angular CLI版本问题。 1. 为这两个环境保留一个特定的angular-cli版本。 2. Goto这两个环境的最新angular-cli版本。
1. angular-cli的特定版本
首先,找出你想在全局和局部环境中保留的angular版本。
ng --version
例如:这里我们保持angular CLI的本地版本8.3.27
所以,我们必须在8.3.27修改全局版本。 使用cmd >
npm install --save-dev @angular/cli@8.3.27 -g
在这里,'-g'标志用于设置angular-cli的全局版本。
2. 转到两种CLI环境下的最新angular版本。
npm install --save-dev @angular/cli@latest -g
npm install --save-dev @angular/cli@latest