升级全局Angular CLI版本吗?

时间:2020-01-07 21:07:53

标签: angular angular-cli

当我通过npm查询@ angular / cli版本时,它告诉我它是版本

npm list -g --depth=0 @angular/cli
>>> @angular/cli@8.3.21

但是当我通过ng --version查询时,它告诉我是8.0.0-beta.11。我不在本地的角度项目中。我不知道如何彻底升级全局ng。有建议吗?

编辑:这是评论中要求的一些额外信息:

sw_vers -productVersion # Show Mac OSX version
>>> 10.15.2

which -a ng
>>> /Users/magnus/.nvm/versions/node/v10.16.3/bin/ng
>>> /usr/local/bin/ng

/Users/magnus/.nvm/versions/node/v10.16.3/bin/ng --version
>>> ... Angular CLI: 8.0.0-beta.11 ...

/usr/local/bin/ng --version
>>> ... Angular CLI: 8.0.0-beta.11 ...
realpath /usr/local/bin/ng
>>> /usr/local/lib/node_modules/@angular/cli/bin/ng

cat ~/.npmrc
>>> ignore-scripts=false

我通过nvm安装了npm,目的是仅使用该版本。不确定为什么在/usr/local/bin中看到ng可执行文件;我敢肯定我不会尝试通过自制软件安装它。

1 个答案:

答案 0 :(得分:0)

好的,在我的情况下,问题是我在Mac上安装了两个npm(一个通过自制程序,另一个通过nvm)。尽管npm的nvm安装在我的$ PATH中具有优先权,但是具有优先权的ng版本是通过npm的自制程序安装的版本。因此,我使用npm的nvm安装进行更新/重新安装/等角度客户端所做的任何努力都不会影响npm的自制安装所安装的cli版本。 (即使我使用npm的nvm版本安装的ng的完整路径,最终还是总是以某种方式链接到npm的自制软件安装的ng版本。)

我的解决方案是摆脱npm及其所有软件包的自制安装。此处的关键是首先使用npm自制安装的完整路径来删除所有全局软件包(例如/usr/local/bin/npm remove -g @angular/cli),然后再删除npm本身的自制安装(brew remove npm)。

现在我的路径中只有npm的nvm安装,并且我可以使用npm install -g @angular/cli@next获得最新的angular cli全局安装。