如何卸载/升级Angular CLI?

170

当我尝试使用Angular CLI创建一个新项目时:

ng n app

我遇到了这个错误:

fs.js:640 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ TypeError: path must be a string or Buffer at TypeError (native)

我该如何升级或卸载Angular CLI


10
请使用 npm uninstall -g angular-cli 进行卸载。 - ranakrunal9
11
现在,请使用 npm uninstall -g @angular/cli 命令卸载 Angular CLI(参考链接:https://dev59.com/glgQ5IYBdhLWcg3wPxnb)。 - Jeremy Moritz
20个回答

450

使用以下命令进行卸载:

npm uninstall -g @angular/cli
npm cache clean --force

验证:

ng --version /* 如果您收到错误消息,则表示您已卸载 */

使用以下命令进行重新安装:

npm install -g @angular/cli

注意: - 使用 --force 来清除所有缓存。 - 在 Windows 上使用 管理员权限 运行。 - 在 Mac 上使用 sudo 命令 ($ sudo <command>)。

  • 如果您使用的是 npm>5,则可能需要使用缓存验证命令。($ npm cache verify)

16
请注意,Angular CLI已经迁移到@angular/cli: [sudo] npm install -g @angular/cli - Osmund Francis
5
“npm cache clean”已被“npm cache verify”所取代,因此似乎不再需要使用前者。 - Arnd Brugman
3
npm ERR!自 npm@5 以来,npm 缓存可以自我修复损坏问题,并且从缓存中提取的数据保证是有效的。如果您想确保一切一致,请使用 'npm cache verify' 命令。 - NoamG
这里有另一个解决方案:https://medium.com/@enirate/how-to-update-to-angulars-latest-cli-version-angular-cli-c7b1dce36476。 - Shaiju T
3
npm版本大于5不需要清除缓存,但如果需要可以运行npm cache clean --force - Ashish Yadav
显示剩余9条评论

44

以上的解决方案都没能解决我的问题。在Windows 7上,以下方法适用:

安装Rapid Environment Editor并移除任何有关node、npm、angular-cli或@angular/cli的条目。

卸载node.js并重新安装。 再次运行Rapid Environment Editor,并确保node.js和npm已添加到您的系统或用户路径中。 使用以下命令卸载所有现有的ng版本:

npm uninstall -g angular-cli

npm uninstall -g @angular/cli

npm cache clean

删除 C:\Users\YOU\AppData\Roaming\npm\node_modules\@angular 文件夹。

重启后,最后运行:

npm install -g @angular/cli

紧接着,屏住呼吸运行ng -v。如果幸运的话,你会得到一些喜爱。从此每次运行ng命令时都屏住呼吸,因为在ng正常运行且我以为问题已经解决后,'command not found' 神奇地再次出现过几次。


更简单的方法:https://dev59.com/glgQ5IYBdhLWcg3wPxnb - Jeremy Moritz

35

运行以下命令以获取最新版本的Angular:

npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest
ng version

13

通常的解决方案,并不总是有效的:

npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli

其他更为激进的解决方案:

  • 全局卸载Angular CLI
npm uninstall -g @angular/cli
  • 使用卸载程序卸载 Node.jsnpm
  • 删除与 Node.jsnpm 相关的所有环境变量
  • 删除文件夹 C:\Users\<user>\AppData\Roaming\npmC:\Users\<user>\AppData\Roaming\npm-cache
  • 确认这些命令是否执行成功:
ng version
npm -v
node -v
npm install -g @angular/cli
  • 最后,检查您的全局Angular CLI版本:
ng version

10

最近在我的 mac 上遇到了这个问题,需要从 /usr/local/bin 中删除 ng 文件夹。安装 Angular CLI 已经很久了,我不太确定最初是如何安装的。


7

移除全局引用

npm uninstall -g angular-cli
npm cache clean

但错误是相同的。有人有解决方案吗? fs.js:640 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^类型错误:路径必须是字符串或缓冲区 在类型错误(native) 在Object.fs.openSync (fs.js:640:18) 在Object.fs.readFileSync (fs.js:508:33) - RohanArihant
这是非常通用的错误,可能是任何问题,如缺少依赖项或配置错误。最好在 https://github.com/angular/angular.js/issues 上询问。顺便说一下,以上是卸载angular的方法。 - A.T.
在末尾添加“--force”,不包括单引号。 - Dale

5

Angular CLI已经迁移至@angular/cli,因此在GitHub自述文件中更新如下:

sudo npm uninstall -g @angular/cli
npm cache clean

5

我尝试了上述所有方法,但是全局仍然无法使用ng。因此,在powershell中运行了Get-Command ng,然后清楚地了解到我的问题所在。我曾经大量使用yarn,所有旧的angular cli包也被安装在yarn缓存位置中。为了保险起见,我删除了yarn缓存,但可能只需通过yarn更新全局angular cli即可。无论如何,希望这能提醒你们中的一些人,如果您使用yarn,则像ng这样的全局命令也可以存在于npm放置它们的另一个路径中。


3

与许多上面的答案相符,我也遇到了一个问题,即在Mac OS 10.15.3上无法使用angular cli 9.1.0创建新应用程序。通过卸载angular cli,清除缓存并重新安装angular cli来解决我的问题。

npm uninstall -g @angular/cli

使用 ng --version 命令验证安装状态。

npm cache verify
npm install -g @angular/cli

尝试使用 ng new my-app 创建新应用程序,以查看上述是否有帮助。

3
如果没有任何作用,您还可以检查全局安装的节点模块,如下所示:
cd /usr/local/lib/node_modules/npm/node_modules

然后删除 @angular 文件夹:

rm -R @angular

通过以下命令重新安装angular-cli:

npm install -g @angular/cli

对我来说,我在 /usr/local/lib/node_modules/ 找到了 @angular 文件夹。 - King James Enejo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接