访问开发文件夹就好像它是节点的全局文件夹
问题描述:
我已经包含我的模块为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
可用于此?
答
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
因为它是全球性的,你可以在任何地方,你需要访问它。
这可以通过多种方式实现,你想在你的问题中设置更多的限制吗?例如你可以通过给出如下路径来要求:'require('../ app1/api/src/db')' – p1100i