2017-06-13 153 views
61

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

警告:

Your global Angular CLI version (1.1.1) is greater than your local version (1.0.6). The local Angular CLI version is used.

+1

谁能回答* *为什么我们需要局部和全局? – Rap

回答

126

要回答的一个问题,就必须同时具有全球和本地安装的工具工作。

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

You have to be inside an Angular CLI project in order to use the serve command.

它也将显示此消息:

Please take the following steps to avoid issues: 
"npm install --save-dev @angular/[email protected]" 

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

其他问题:看起来他们没有同步,但最好是他们是为了避免该工具的任何异常行为,或者与该工具生成的代码不一致。

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

需要全局安装才能启动新的应用程序。使用CLI的全局安装运行ng new <app-name>命令。事实上,如果你尝试运行ng new,而现有的CLI应用程序的文件夹结构里面,你得到这个可爱的错误:

You cannot use the new command inside an Angular CLI project.

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

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

按照CLI的GitHub readme,更新您必须更新全局和局部包CLI。但是,我已经使用了CLI,其中全球和本地版本迄今为止没有任何问题。如果我遇到过与全局和本地CLI版本不同步的错误,我会在这里发布。

+0

有没有办法,而不是更新cli,例如我想运行与我现有的cli版本一起安装模块。或者当执行命令使用本地cli而不是全局命令时没有办法强制? –

+0

在CLI项目目录中运行命令时,默认使用CLI的本地版本。它在警告中说了很多。 –

+0

但我不知道为什么这个解决方案不适合我。如果我在我的package.json中提到我的angular-cli =“^ 1.0.6”的值,该怎么办?这项工作,但仍不能解释发生了什么? –

-7

将声明中的NouisliderComponent放置为不导入。

@NgModule({ 
declarations: [ 
AppComponent, 
NouisliderComponent 
], 
imports: [ 
BrowserModule, 
FormsModule, 
HttpModule, 

], 
providers: [], 
bootstrap: [AppComponent] 
}) 
export class AppModule { }` 

的更多信息,请参考以下网址: https://github.com/tb/ng2-nouislider/issues/38

-9

感谢伟大工程的更新还有就是我不建议的替代方案。

ng set --global warnings.versionMismatch=false 
+0

这只是为了禁用不匹配的警告,根本不是一个好的选择。 –

+0

这不是答案,它可能会引起混淆 –

1

这个工作对我来说: 就会更新本地版本的最新

npm uninstall --save-dev angular-cli 
npm install --save-dev @angular/[email protected] 
npm install 

验证版本

ng --version 
+0

我将它转换成旧skool Windoze批处理命令: CALL npm uninstall --save-dev @ angular/cli CALL npm install --save-dev @ angular/cli @latest CALL npm install CALL ng --version –