Доступ к папке разработки, как будто это глобальная папка узла
У меня есть папка модулей, в которой находятся мои модули для приложения 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
пригоден для этого?
1 ответ
require('...')
будет искать модули внутри папки node_modules или локальных файлов при использовании ./
или же ../
,
Что вы можете сделать, так это создать собственную функцию require, которая будет искать локальные файлы, даже если не использовать относительные / абсолютные пути к файлам.
В вашем корневом / входном коде используйте это:
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
Поскольку он является глобальным, вы можете получить к нему доступ из любой точки мира.