节点未找到全局模块

Node Not Finding Global Module

所以我意识到这是一个相当通用的标题和问题,但我搜索了这么多答案,但遗憾的是 none 似乎对我有用。我希望从我自己那里获得更多信息,也许有人有具体的答案,或者确切地知道将我重定向到哪个答案。

我的问题:当我全局安装节点模块时(例如 npm install -g nightmare),我无法在我的项目文件夹中访问它们。我收到错误:

module.js:471
    throw err;
    ^

Error: Cannot find module 'nightmare'
...

据我所知,目前在项目文件夹中本地安装模块似乎是首选做法(这是真的吗?),但目前在开发阶段我希望能够使用我在全球安装的模块。我是 node.js 的新手,所以我仍在探索 "usual practice" 对这些东西的意义。我首先使用 Homebrew 安装了 Node,但是因为我对安装方式和路径有疑问(人们说这在使用 Homebrew 时很常见),所以我决定尝试从头开始,卸载 Homebrew,然后最终将 Node 和 NPM 作为出色地。我通过网站重新安装了 Node 和 NPM,但仍然无法访问我的全局模块。

此时我很困惑,因为我在一些随机位置有一些 node_module 文件和包,但没有安装当前全局包的位置。我假设是以前安装的遗留物。话虽这么说,我已经多次调整 $NODE_PATH,希望我可以访问这些模块,但运气并不好。

根据 --verbose 安装的当前安装点是 /Users/<user>/.npm-packages/lib,我认为这很奇怪,因为很多已经回答了这个问题的人正在更正他们的路径到 /usr/local/lib/node_modules 里面有适合我的东西,但没有安装的模块。我假设(因为它所在的 'local' 文件)这是本地安装...也许?老实说,我现在很困惑为什么所有东西都安装在原处,为什么即使更改 $NODE_PATH 我也无法访问模块。

如果我遗漏了什么或需要包括一些其他输出,请随时询问并提示更多。我不确定还需要什么更多的指导。

提前致谢!

您不能导入全局安装的包。

您有 2 个选项,要么在本地安装:

npm install nightmare --save

或者创建本地link到全局包:

npm install -g nightmare
npm link nightmare