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

警告:

你的Angular CLI全局版本(1.1.1)比你的本地版本(1.0.6)更高。使用的是Angular CLI的本地版本。


当前回答

这就是我解决它的方法。在Visual Studio Code的终端中,首先清理缓存

npm cache clean --force

然后更新cli

ng update @angular/cli

如果在此之后缺少任何模块,使用下面的命令

npm install

其他回答

我英语说得不流利

但如果我理解了这个问题,是不是项目的本地CLI版本比全局CLI版本要旧?

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

如果是的话,在项目目录npm link @angular/cli中运行一个非常简单的方法就足够了

更多相关主题请访问:https://docs.npmjs.com/cli/link

使用——module参数指定模块。例如,如果主模块是app.module。Ts,运行这个:

ng g c new-component --module app

或者如果你在另一个目录

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

如果您只是希望关闭此警告,请运行该命令

ng config -g cli.warnings.versionMismatch false

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

要回答其中一个问题,必须同时进行全局和本地安装,以便工具能够工作。

如果您尝试在没有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的工作区(Local)

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

注意:如果安装正确,请确保使用' -g '命令安装全局版本

npm install -g @angular/cli@latest

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

ng update

对每个Angular核心包运行update命令,如下所示

ng update @angular/cli @angular/core

然而,我不得不添加' -force '和' -allow-dirty '标志来解决所有其他悬而未决的问题

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