如何卸载 npm 包?

卸载本地包:npm uninstall 包名(默认保存配置下从 package.json 移除);全局包加 -g;多个包空格分隔一次卸载。卸载后检查 lock 文件,通常无需再跑 npm prune。

最佳实践
文件、模块与依赖组织示意

npm uninstall <包名>——从 node_modules 删除并同步更新 package.json。

常用命令

# 卸载项目依赖(同时从 dependencies 中移除声明)
npm uninstall lodash

# 卸载开发依赖(从 devDependencies 移除)
npm uninstall jest

# 卸载全局包
npm uninstall -g typescript

# 一次卸多个
npm uninstall lodash moment dayjs

卸载后的检查

npm ls --depth=0     # 确认顶层依赖里没有了
# npm uninstall 后通常不需要额外 prune

默认保存配置下,npm uninstall 会更新 package.json 和已有 package-lock.json;--no-save 不更新这些声明文件。workspaces 项目应对拥有该依赖的 workspace 操作,例如 npm uninstall lodash -w app。如果你用了 Git,这两个文件的变化要一起提交,否则团队成员 npm install 时包又会被装回来。

相关但不相同的操作

想做的事 命令
卸载某个包 npm uninstall 包名
清空全部重装 npm ci(已有且匹配的 lockfile)
清理未声明的包 npm prune
检查 npm 缓存 npm cache verify(卸载通常不需要清缓存)

常见问题(FAQ)

Q:卸载了包,代码里还有 require 它的地方会怎样?
若模块无法解析,运行到该处会报找不到模块;同名包若仍作为传递依赖被提升,可能暂时可解析,但不能依赖这种偶然情况。卸载前先全局搜索 import/require 引用:grep -r "包名" src/。

Q:uninstall 后 node_modules 里还有它的子依赖吗?
可能被其他包共享的子依赖会保留;只被它独占的子依赖会一并移除。npm ls 可以验证。

Q:和手动删 node_modules 里的文件夹有什么区别?
手动删不同步 package.json/lock 文件,下次 npm install 又会装回来。永远用 npm uninstall。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台