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

时间:2018-11-27 09:57:16

标签: node.js npm vue-cli-3

我在/ 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 foleder吗?有什么用?还是我需要重新安装node和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

后一切正常

1 个答案:

答案 0 :(得分:1)

module.paths是NodeJS搜索NPM软件包的路径;它实际上  如您所见,不搜索在您的NPM全局目录中。

此处https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders和此处https://nodejs.org/api/modules.html#modules_all_together的更多信息。

您看到这些路径是因为您在主目录中时正在执行node -e ...,因此NodeJS只需遍历所有node_modules路径到根。

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

关于您的问题:是,您可以删除~/node_modules;可能是因为您一次写了npm i MODULE而没有-g标志并且您的cwd为~

相关问题