Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 集中式节点单元_Node.js_Debian_Npm_Node Modules - Fatal编程技术网

Node.js 集中式节点单元

Node.js 集中式节点单元,node.js,debian,npm,node-modules,Node.js,Debian,Npm,Node Modules,我希望将我的节点模块存储在一个集中的位置,比如说,/var/http/common/,并让我的应用程序在另一个位置运行,比如说,/var/http/www/apps/app\1\u NAME/ 我可以在server.js中设置requires,以使用require('../../../common/express')之类的相对路径,但是从NPM的作者的阅读来看,听起来好像我在破解它,我应该使用NPM link为节点创建一个“本地”引用(该引用符号链接到实际安装) 我首先在/var/http/co

我希望将我的节点模块存储在一个集中的位置,比如说,
/var/http/common/
,并让我的应用程序在另一个位置运行,比如说,
/var/http/www/apps/app\1\u NAME/

我可以在
server.js
中设置requires,以使用
require('../../../common/express')
之类的相对路径,但是从NPM的作者的阅读来看,听起来好像我在破解它,我应该使用
NPM link
为节点创建一个“本地”引用(该引用符号链接到实际安装)


我首先在
/var/http/common/
中安装了节点模块,但当我尝试创建符号链接(
npm link../../../common/node_modules/express
)时,npm似乎将其视为“全局”安装,并在
/usr/local/lib/node_modules/express中重新安装了express(并创建了一个“local”符号链接到它
/node\u modules/express->
),这不是我所期望的。这就是我真正想要的吗?我应该先使用
npm config set prefix
吗?

您可以通过在命令中添加“-g”来全局安装节点模块。例如:

npm install express -g
在您的代码中,您可以正常使用它:

require('express');

然后将模块存储在/usr/local/lib/node_modules中,结果是:在执行任何其他操作之前,我应该设置
npm config set prefix

似乎
npm-link
npm-install-g
做了同样的事情;然而,
npm-link
将在全局范围内安装模块,同时它也会在
node\u-modules
中创建一个指向
$prefix/lib/node\u-modules/$module
的本地符号链接。不正确:如果没有该本地符号链接,节点将抱怨无法找到(全局安装的)模块。这是通过我自己的尝试确定的,也可以从
npm帮助文件夹中推断出来:

•如果您需要,请在本地安装它()

•如果要在命令行上运行它,请在全局范围内安装它

•如果您需要两个,请在两个位置安装,或使用npm链接

这并没有具体解决我所问的问题:我希望将模块存储在一个中心位置(由多个节点应用程序访问),但我不关心从命令中使用它们,就像我只想在
require(“”)
中使用它们一样


至于我关于在
require(“”)
中使用相对路径的问题,我仍然没有得到/找到权威的答案,但从
npm link
的存在来看,使用rel路径似乎不是作者的意图。对我来说,这似乎是一种情况,但我希望与Node的标准保持一致。

Hi Max.谢谢,但我不希望它们安装在该位置(我是否应该先使用npm config set prefix?)。我也问了,因为我没有运行npm安装,我运行了npm链接;所以我想知道为什么它也运行了一个安装,可能是因为它检测到模块没有安装在默认的全局位置吗?您认为需要设置$NODE_PATH以避免本地sym链接吗