需要在nodeJS中从一个固定的根相对访问模块

我试图访问模块,但嵌套有点失控

require("../../../Folder/Deeper/someFile")

反正只要使用require("Folder/Deeper/somefile")

我试过设置

require.paths = ['/media/work/Project'];

但是这似乎不起作用,对我来说也感觉有点难看。

有没有其他的select。 有没有什么办法来写这个包装呢?

       

网上收集的解决方案 "需要在nodeJS中从一个固定的根相对访问模块"

也许这个?

 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 installnpm install

 "scripts": { "postinstall": "ln -sf ../app ./node_modules" } 

Windows没有ln ,所以Windows用户需要手动创build符号链接。 它可能会或可能不会在Windows上工作。