我在/ 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
答案 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为~
。