需要在nodeJS中从一个固定的根相对访问模块
我试图访问模块,但嵌套有点失控
require("../../../Folder/Deeper/someFile")
反正只要使用require("Folder/Deeper/somefile")
我试过设置
require.paths = ['/media/work/Project'];
但是这似乎不起作用,对我来说也感觉有点难看。
有没有其他的select。 有没有什么办法来写这个包装呢?
也许这个?
require.paths.unshift( '../../..' ); require("Folder/Deeper/somefile");
http://nodejs.org/api.html说:
require.paths require()的searchpath数组。 可以修改该数组以添加自定义path。
例如:添加一个新的path到search列表的开头
require.paths.unshift('/usr/local/node');
把你的应用程序放到应用程序根目录下的一个文件夹中(比如./app
),然后将它软链接到node_modules
如下所示:
ln -s ../app ./node_modules
(注意app
之前的双点。)
这将允许您从您的应用程序根目录require
模块:
require('app/route/api')
为方便起见,将其作为postinstall脚本包含在package.json
,以便在每个npm install
上npm install
:
"scripts": { "postinstall": "ln -sf ../app ./node_modules" }
Windows没有ln
,所以Windows用户需要手动创build符号链接。 它可能会或可能不会在Windows上工作。