这里是 Node.js 新手,Windows 10。我在没有 的目录中
。 npm 将包放在 npm install
-ed 了一些包(没有 -g
)包.jsonC:\Users\{MyName}\node_modules\
中。
现在我看到了一些奇怪的行为:
- 当我在我的项目目录中时(有
package.json
但还没有node_modules/
),npm list
和npm list -g
都显示一个空列表 - 当我在非项目目录中时(没有
package.json
)...npm list -g
仍然显示一个空列表- 但是,
npm list
会显示C:\Users\{MyName}\node_modules\
中的所有内容
问题 1. 这里发生了什么?显然,npm's default global path should be C:\Users\{MyName}\AppData\Roaming\npm\
.如果是这样,为什么要使用 C:\Users\{MyName}\node_modules\
?
问题 2. 我如何摆脱这个烂摊子? Node.js 从 C:\Users\{MyName}\node_modules\
导入包没有问题,但我希望 npm 正确列出它们。如何删除半全局包,正确重新安装它们,并确保不再发生这种情况?
最佳答案
好吧,事实证明我一直错误地npm install
-ing 包没有 package.json
。我第一次这样做是在我的主目录 (C:\Users\{MyName}\
) 中。这导致 npm 在主目录中创建 node_modules/
和 package-lock.json
。进一步(错误的)尝试在我的项目中安装包——仍然缺少 package.json
——导致 npm 向上遍历,直到找到初始的 node_modules/
目录,并在那里安装所有东西。 Because my home directory is among the places Node.js looks for modules ,直到现在我才注意到我的错误。 :P
关于node.js - 为什么 npm 在我的主目录中安装本地包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894761/