访问开发文件夹就好像它是节点的全局文件夹

问题描述:

我已经包含我的模块为app1的模块文件夹,并有另一个模块文件夹为app2等。 我希望导入我的模块而不传递虚拟模块路径。访问开发文件夹就好像它是节点的全局文件夹

例如,

c:\Projects\Apps\ 
    firstApp 
     www.js // I wish to import db with require('db') 
    Modules 
     db 
     src/...*.js // var ext=require('extensions') 
     test/...*.js 
     index.js 
     api 
     src/ 
      *.js // var ext=require('db'), 
       // var ext=require('extensions'), 
     test/ 
      *.js // var testApi = require('api') 
     index.js 
     extensions 
     src/...*.js 
     test/...*.js 
     index.js 

是否有任何可能使用它们,就好像它们安装在本地但在不同的文件夹中一样。 npm link可用于此?

+0

这可以通过多种方式实现,你想在你的问题中设置更多的限制吗?例如你可以通过给出如下路径来要求:'require('../ app1/api/src/db')' – p1100i

require('...')将在使用./../时查找node_modules文件夹内的模块或本地文件。

你可以做的是创建你自己的require函数,即使在不使用相对/绝对文件路径时也会查找本地文件。

在你的root /入口代码,使用:

var projectDirectory = __dirname; 
GLOBAL.requirep = function(path) { 
    return require(projectDirectory + '/' + path); 
} 

//at any js file, you can do this: 
var db = requirep('db') //will load db/index.js 
var api = requirep('api/src/file.js') //will load api/src/file.js 

因为它是全球性的,你可以在任何地方,你需要访问它。