NodeJS需要一个全局模块/包

我试图在全球范围内安装,然后使用foreverforever-monitor这样的:

npm install -g forever forever-monitor

我看到了通常的输出以及将文件复制到全局路径的操作,但是如果我尝试require("forever");这样做,则会收到一条错误消息,指出未找到该模块。

我正在使用最新版本的node和npm,并且我已经知道npm在全局安装与本地安装中所做的更改,但是我真的不想在每个项目上都安装localy,并且我正在一个不支持不支持,link因此npm link对我而言无法进行全局安装。

我的问题是:为什么我不需要全局安装的软件包?那是功能还是错误?还是我做错了什么?

PS:只是为了使事情变得清晰起来:我不想在本地安装。

西里神奇2020/03/26 16:45:49

您可以将以下行放入.profile文件中:

export NODE_PATH =“ $(npm config获取前缀)/ lib / node_modules”

这将node使用全局路径。

前端小哥2020/03/26 16:45:49

道歉,但我能够为全局安装的模块指定硬编码的路径:

var pg = require("/usr/local/lib/node_modules/pg");

这不是完美的,但是考虑到Unity3d试图“编译”项目目录中包含的所有javascript,我确实无法安装任何软件包。

樱小胖Mandy2020/03/26 16:45:49

全局安装软件包后,必须将本地项目与全局软件包链接

npm install express -g
cd ~/mynodeproject/
npm link express  

这里

Tony凯2020/03/26 16:45:49

在Node.js中,require不会在安装全局模块的文件夹中查找。

您可以通过设置NODE_PATH环境变量来解决此问题。在Linux中,这将是:

export NODE_PATH=/usr/lib/node_modules

注意:这取决于您的全局模块的实际安装位​​置。

请参阅:从全局文件夹加载