Windows系统执行npm install或update时自动删除全部包问题求助
问题原因
你执行npm命令的工作目录是Node.js的系统安装目录C:\Programs\nodejs,该目录下的node_modules存放的是npm本身的核心运行文件。当你在没有package.json的目录下执行npm install <包名>或npm update时,npm会默认将当前目录作为项目根目录,对比空的依赖清单和现有node_modules内容,删除所有不在清单内的包,自然就把npm自身的文件清空了。
不要在Node.js安装目录下直接执行任何npm项目相关命令。
解决方案
- 快速恢复npm:无需完整重装Node.js,你可以下载对应版本Node.js的压缩包,将压缩包内
node_modules\npm目录整体解压覆盖到C:\Programs\nodejs\node_modules\npm路径即可恢复npm功能,当然直接完整重装Node.js也可以。 - 第三方包安装正确流程:
- 新建专属的项目目录,例如
C:\Users\你的用户名\workspace\my-test,禁止使用Node.js的安装目录作为项目目录 - 打开终端切换到新建的项目目录,执行
npm init -y生成项目专属的package.json依赖配置文件 - 在当前项目目录下执行
npm install luxon这类安装命令,即可正常安装依赖,不会再清空npm自身文件
- 新建专属的项目目录,例如
- 如果你需要安装全局工具类依赖(例如全局可用的命令行工具),可以在任意路径执行
npm install -g <包名>,添加-g参数表示全局安装,不会影响Node.js核心目录的文件。
内容的提问来源于stack exchange,提问作者Wernfried Domscheit
相关产品推荐
相关产品推荐

