节点未找到全局模块

时间:2017-02-24 18:20:00

标签: node.js path node-modules

所以我意识到这是一个相当通用的标题和问题,但我已经仔细研究了这么多答案,但遗憾的是它们似乎都没有为我工作。我希望收到更多来自我自己的信息,或许某人有特定的答案,或者确切地知道要将我重定向到哪个答案。

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

module.js:471
    throw err;
    ^

Error: Cannot find module 'nightmare'
...

从我到目前为止所读到的,在项目文件夹中本地安装模块似乎是首选的做法(这是真的吗?),但是现在在开发阶段我希望能够使用这些模块我已在全球安装。我是node.js的新手,所以我仍然在发现这些东西的“通常做法”。我首先使用Homebrew安装了Node,但由于我遇到了安装和路径的问题(人们说使用Homebrew时很常见),我决定尝试一个干净的平板,卸载Homebrew,然后最终将Node和NPM作为好。我通过网站重新安装了Node和NPM,但我仍然无法访问我的全局模块。

我现在非常困惑,因为我在一些随机位置有一些node_module文件和软件包,但不是我当前的全局软件包安装位置。我假设从以前的安装中剩下的。话虽如此,我已经多次调整$NODE_PATH,希望我可以访问这些模块,但没有这样的运气。

根据--verbose安装的当前安装点是/Users/<user>/.npm-packages/lib,我认为这很奇怪,因为许多已经回答此问题的人正在纠正他们的路径{{1}它包含了我的内容,但没有安装的模块。我假设(因为它的'本地'文件)这是本地安装......也许?说实话,我很困惑,至于为什么一切都安装在原因和原因,即使更改/usr/local/lib/node_modules我也无法访问模块。

如果我错过了某些内容或需要包含其他输出,请随时提出并提示更多信息。我不确定还有什么需要更多方向。

提前谢谢!

1 个答案:

答案 0 :(得分:19)

您无法导入全局安装的软件包。

您有2个选项,可以在本地安装:

npm install nightmare --save

或创建指向全局包的本地链接:

npm install -g nightmare
npm link nightmare