Mac怎么彻底卸载Node.js和所有全局npm模块

阿明酱_2739

阿明酱_2739

2026-10-13

322人浏览

原创

必须先确认node.js安装方式再卸载:nvm安装用nvm uninstall,homebrew安装用brew uninstall,pkg安装需手动删除/usr/local/等路径文件并清理用户缓存,最后新开终端验证node/npm -v均报command not found。

mac怎么彻底卸载node.js和所有全局npm模块

在Mac上彻底卸载Node.js和所有全局npm模块,必须先确认安装方式,否则删掉/usr/local/bin/node后终端仍能执行node -v,说明残留路径还在PATH里生效,后续重装必然冲突。

第一步:判断你当初怎么装的Node.js

打开终端,逐条运行以下命令,观察输出:

输入 which node → 如果返回 /opt/homebrew/bin/node 或 /usr/local/bin/node,说明是Homebrew或pkg安装;如果返回 ~/.nvm/versions/node/v18.19.0/bin/node,说明是nvm安装;如果返回空,可能已部分卸载但PATH未清理。

输入 brew list | grep node → 若有输出(如 node、node@20),属于Homebrew安装;若无输出,排除Homebrew路径。

【关键前提】别跳过这一步——混用卸载方式会导致/usr/local/bin/node被删了,但~/.nvm下的版本仍在PATH中生效,验证时会误判卸载成功。

nvm安装的Node.js及全局模块清理

nvm管理的版本独立存于用户目录,卸载指定版本不会影响其他版本,也不动系统级路径。

运行 nvm ls 查看已安装的所有版本,当前正在使用的版本前标有 ->。

对每个要清理的旧版本(例如v14.21.3),执行:nvm uninstall v14.21.3。

若想一键清空除当前版本外所有旧版,粘贴并执行以下命令(注意:此操作不可逆):
for version in $(nvm ls --no-alias | grep -E '^[0-9]' | grep -v $(nvm current)); do nvm uninstall $version; done

执行完后,nvm ls 应只显示当前版本和default(如有)。此时全局npm模块随对应Node版本目录一并删除,无需额外处理。

Homebrew安装的Node.js及全局模块清理

这是最干净的卸载路径,Homebrew会自动追踪文件依赖关系。

方法一:卸载主版本
brew uninstall node

Wjs Uploading Video
Wjs Uploading Video

将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。

下载

方法二:卸载特定旧版本(如曾装过node@16)
brew uninstall node@16

执行 brew cleanup → 清理Homebrew缓存及未被引用的旧版formula残留。

手动删除用户级npm缓存(Homebrew不负责这部分):
rm -rf ~/.npm ~/.node-gyp ~/.npmrc

官网.pkg安装包的彻底清除

这是最易残留的安装方式,文件散落在系统多个位置,必须逐项清理。

第一步:删核心可执行文件与手册页
sudo rm -rf /usr/local/bin/{node,npm,npx}

第二步:删系统级模块与头文件
sudo rm -rf /usr/local/lib/node_modules /usr/local/lib/node /usr/local/include/node

第三步:删DTrace支持与man文档
sudo rm -rf /usr/local/lib/dtrace/node.d /usr/local/share/man/man1/{node.1,npm.1,npx.1}

第四步:清用户级缓存与配置(含全局模块软链接源)
rm -rf ~/.npm ~/.node-gyp ~/.npmrc ~/.node_repl_history

【重要提醒】执行上述sudo命令时需输入管理员密码,屏幕不显示字符,输完直接回车;若某条命令报“no such file or directory”,跳过即可,说明该路径本就不存在。

最后验证是否真正卸载干净

关闭当前终端窗口,重新打开一个全新终端窗口。

依次运行:
node -v → 必须返回 command not found
npm -v → 必须返回 command not found
which node → 返回空行

三项全部满足,说明Node.js及其所有全局npm模块已从系统中清除。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

js node.js node npm

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
node.js调试
node.js调试

node.js调试可以使用console.log()输出调试信息、断点调试和第三方调试工具。详细介绍:1、console.log()输出调试信息,通过在代码中插入console.log()语句,开发人员可以在控制台输出变量的值、函数的执行结果等信息,以便观察代码的执行流程和状态;2、断点调试,可以在代码中设置断点,以便在特定位置暂停代码的执行,观察变量的值和执行流程等。

2023.09.19

10229

8

JavaScript 全栈开发基础(Node.js + 前端)
JavaScript 全栈开发基础(Node.js + 前端)

本专题系统介绍 JavaScript 在全栈开发中的核心知识结构,涵盖 Node.js 基础、Express/Koa 接口构建、前端交互设计、模块化与包管理、数据库连接、前后端数据通信与部署流程。通过完整项目示例,帮助学习者掌握从浏览器到服务器的一体化开发能力,实现真正意义上的全栈入门。

2025.11.26

434

14

Node.js后端开发与Express框架实践
Node.js后端开发与Express框架实践

本专题针对初中级 Node.js 开发者,系统讲解如何使用 Express 框架搭建高性能后端服务。内容包括路由设计、中间件开发、数据库集成、API 安全与异常处理,以及 RESTful API 的设计与优化。通过实际项目演示,帮助开发者快速掌握 Node.js 后端开发流程。

2026.02.10

761

17

JavaScript Node.js流处理与高效数据管道构建实践
JavaScript Node.js流处理与高效数据管道构建实践

本专题聚焦 Node.js 在大规模数据处理场景中的应用,系统讲解 Stream 流机制、背压控制、管道(Pipe)处理以及文件与网络数据流的高效传输方式。内容包括可读流、可写流、双工流与转换流的实现原理,并结合实际案例构建高性能数据处理管道,帮助开发者提升数据处理效率与系统吞吐能力。

2026.04.07

324

13

TypeScript Node.js 全栈工程化与Monorepo架构实践
TypeScript Node.js 全栈工程化与Monorepo架构实践

本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。

2026.06.16

558

8

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

2026.10.10

80

15

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

2026.10.10

40

15

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

2026.10.10

20

15

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

2026.10.10

20

26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 20.9万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.8万人学习