【问题标题】:Upgrading global Angular cli version?升级全球 Angular cli 版本?
【发布时间】:2020-04-25 09:54:22
【问题描述】:

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

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

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

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

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 可执行文件;我很确定我不会尝试通过自制软件安装它。

【问题讨论】:

  • 你试过npm uninstall -g @angular/cli && npm install -g @angular/cli
  • 是的......
  • 安装最新的@angular/cli 版本后是否重启了终端?
  • 检查您的$PATH 并查看它从哪里加载。更新您的问题以包含您的操作系统,并检查您在 ~/.npmrc 中的内容

标签: angular angular-cli


【解决方案1】:

好的,就我而言,问题是我在我的 Mac 上安装了两个 npm(一个通过自制软件,一个通过 nvm)。尽管 npm 的 nvm 安装在我的 $PATH 中具有优先权,但获得优先权的 ng 版本是通过 npm 的 homebrew install 安装的版本。因此,我使用 npm 的 nvm 安装更新/重新安装/等角度客户端所做的任何努力都对 npm 的 homebrew install 安装的 cli 版本没有影响。 (即使我使用 npm 的 nvm 版本安装的 ng 的完整路径,它最终还是总是链接到由 npm 的 homebrew install 安装的 ng 版本。)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2017-10-11
    • 1970-01-01
    • 2017-12-23
    • 2022-01-03
    • 2019-07-31
    • 2018-10-26
    相关资源
    最近更新 更多