angular - 无法更新 Angular CLI

标签 angular npm angular-cli node-modules

如您所见,我定期安装版本 9。

npm install -g @angular/cli
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
/home/user/.npm-global/bin/ng -> /home/user/.npm-global/lib/node_modules/@angular/cli/bin/ng

> @angular/cli@9.1.1 postinstall /home/user/.npm-global/lib/node_modules/@angular/cli
> node ./bin/postinstall/script.js

+ @angular/cli@9.1.1
updated 1 package in 8.412s

┌─────────────────────────────────────────────────────────┐
│                 npm update check failed                 │
│           Try running with sudo or get access           │
│          to the local update config store via           │
│ sudo chown -R $USER:$(id -gn $USER) /home/user/.config  │
└─────────────────────────────────────────────────────────┘
user@computer:~$ npm list -g
/home/user/.npm-global/lib
├─┬ @angular/cli@9.1.1

但是每当我使用“ng new app-name”创建新应用程序时,我都会安装版本 8。当我使用“ng --version”检查版本时,它说已安装 v8。

ng --version    

Angular CLI: 8.0.3
Node: 12.16.2
OS: linux x64
Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.800.3
@angular-devkit/core         8.0.3
@angular-devkit/schematics   8.0.3
@schematics/angular          8.0.3
@schematics/update           0.800.3
rxjs                         6.4.0

谁能帮帮我?

最佳答案

注意 nvm用户:

如果在 nvm 之前安装你有 @angular/cli全局安装并且您现在使用的是通过 nvm 安装的不同节点版本,那么您可能会发现以下注释很有用:

当您通过 nvm 切换节点版本时安装全局 node_modules 的 npm 文件夹位置。

假设我切换到节点 14 ( nvm use 14 ) 并使用以下命令安装了最新的 angular cli:

npm install @angular/cli -g

您将看到一个输出,告诉您 Angular 已成功安装。 然后你运行 ng --version验证版本,您会发现旧版本仍然存在。为什么?

NVM's节点位于: /Users/<USER_NAME>/.nvm/versions/node/v14.XX.XX/bin

安装后 @angular/cli全局一个ng快捷方式/符号链接(symbolic link)位于此文件夹内。

lrwxr-xr-x  1 X  staff        39 14 Ago 10:45 ng -> ../lib/node_modules/@angular/cli/bin/ng
-rwxr-xr-x  1 X  staff  76198080 11 Ago 06:29 node
lrwxr-xr-x  1 X  staff        38 14 Ago 10:42 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x  1 X  staff        38 14 Ago 10:42 npx -> ../lib/node_modules/npm/bin/npx-cli.js

因此,它指向位于以下位置的节点 14 node_modules 文件夹: /Users/<USER_NAME>/.nvm/versions/node/v14.XX.XX/lib/node_modules

但由于我在安装 nvm 之前全局安装了 @angular/cli,旧版本正在使用中

要解决此问题,您必须找到 global node_modules 所在的位置在 NVM 安装之前安装。在我的例子中,路径是:/usr/local/lib/node_modules .

转到文件夹并删除 @angular . 重新启动终端并运行 ng --version .您现在应该获得正确的 ng 版本。

这也适用于其他模块。

关于angular - 无法更新 Angular CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61304888/

相关文章:

css - 将 CSS 从 Angular 组件应用到子组件

node.js - npm 警告 : npm does not support Node. js v12.4.0

NPM 7 工作区 - 多个节点模块?

Angular CLI 生成组件问题

javascript - 将响应映射到模型对象

css - 如何在悬停时向 ngFor 生成的元素添加类?

angular - 无法运行新的 Angular CLI 项目

html - Angular-cli 从外部 url 添加样式

javascript - 如何正确管理异步

javascript - 同时开发一个 npm 包和一个依赖它的项目