你能在项目之间共享一个gulp框架吗?

时间:2016-05-19 06:50:31

标签: node.js frameworks gulp shared-libraries shared

我有很多项目都遵循特定的文件夹结构和约定。

我不想复制整个项目,而是希望每个项目都有一个配置对象,每个项目都链接到全局框架。

示例:

/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只会给我一个错误

'无法找到模块配置'。

我想我所要做的就是将配置对象传递给全局框架,但没有太多运气。

想法?

1 个答案:

答案 0 :(得分:2)

基本上使用require('configuration')中的index.js会在configuration中查找/gulp-framework/node_modules/模块。它不会从configuration.jsproject-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;
};