为什么我的主文件夹下有一个 node_modules 文件夹?

Why is there a node_modules folder under my home folder?

我已经在 /usr/local/lib/node_modules 中有一个全局 node_modules 文件夹,但我刚刚发现还有我的主文件夹下的 ~/node_modules 文件夹。我可以删除这个吗?

我执行 node -e "console.log(global.module.paths)" 我得到:

[ '/Users/Username/node_modules',
'/Users/node_modules',
 '/node_modules' ]

如果我删除主目录下的node_modules文件夹,然后我执行npm list @vue/cli-ui。应该是这个错误:

/Users/Username
└── UNMET DEPENDENCY @vue/cli-ui@3.0.1
npm ERR! missing: @vue/cli-ui@3.0.1, required by Username

那么,我可以删除主目录下的node_modules文件夹吗?它有什么用?还是我需要重新安装 Node.js 和 npm?

如果我删除这个文件夹,当我执行 npm ls 时,我会得到这些错误:

/Users/Username
├─┬ UNMET DEPENDENCY @vue/cli-ui@3.0.1
│ ├─┬ UNMET DEPENDENCY @akryum/winattr@3.0.0
│ │ └── UNMET DEPENDENCY fswin@2.17.1227
│ ├─┬ UNMET DEPENDENCY @vue/cli-shared-utils@3.0.1
│ │ ├── UNMET DEPENDENCY chalk@2.4.1
│ │ ├── UNMET DEPENDENCY execa@0.10.0
│ │ ├─┬ UNMET DEPENDENCY joi@13.6.0
│ │ │ ├── UNMET DEPENDENCY hoek@5.0.4

我该如何解决这个问题?


执行npm cache verify后一切正常

module.paths是Node.js搜索npm包的路径;正如您所见,它实际上 不会在您的 NPM 全局目录中搜索

更多信息在 Loading from the global folders and in All together....

你看到这些路径是因为你在主目录中执行 node -e ...,Node.js 只是遍历所有 node_modules 路径到根目录。

'/Users/node_modules',
 '/node_modules' ]

关于你的问题:是的,你可以删除~/node_modules;可能是因为你 曾经 写了 npm i MODULE 没有 -g 标志并且你当前的工作目录是 ~.