2017-06-13 174 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 –