我有很多项目都遵循特定的文件夹结构和约定。
我不想复制整个项目,而是希望每个项目都有一个配置对象,每个项目都链接到全局框架。
示例:
/gulp-framework
index.js
/project-a
gulpfile.js
configuration.js
/project-b
gulpfile.js
configuration.js
内部index.js
var configuration = require('configuration');
内部配置.js:
module.exports = function() {
return { foo : true };
}
在gulp文件中我会:
require('./configuration');
require('../gulp-framework');
然而,运行gulp只会给我一个错误
'无法找到模块配置'。
我想我所要做的就是将配置对象传递给全局框架,但没有太多运气。
想法?
答案 0 :(得分:2)
基本上使用require('configuration')
中的index.js
会在configuration
中查找/gulp-framework/node_modules/
模块。它不会从configuration.js
或project-a
加载project-b
。 (详细了解require()
如何运作的确切逻辑here。)
您需要明确地将配置和gulp对象从gulpfile.js
传递到index.js
:
在每个 gulpfile.js :
中var config = require('./configuration.js');
var gulp = require('../gulp-framework')(require('gulp'), config);
// project-specific stuff using gulp and config goes here
在 index.js :
module.exports = function(gulp, config) {
// project-independent stuff using gulp and config goes here
return gulp;
};