无法访问在依赖项模块中定义的Gulp任务

无法访问在依赖项模块中定义的Gulp任务,gulp,Gulp,我想在几个项目中共享一些任务,所以我将它们移动到另一个模块中,从目标项目的gulpfile.js加载 投射一棵树: gulpfile.js package.json ... gulpfile.js: require('my-gulp-tasks')({ version: '0.0.1', production: utils.env.production, port: ... // misc settings to customize tasks }); var gulp =

我想在几个项目中共享一些任务,所以我将它们移动到另一个模块中,从目标项目的
gulpfile.js
加载

投射一棵树:

gulpfile.js
package.json
...
gulpfile.js:

require('my-gulp-tasks')({
  version: '0.0.1',
  production: utils.env.production,
  port: ...
  // misc settings to customize tasks
});
var gulp = require('gulp');

require('my-gulp-tasks')(gulp, {
  // settings...
});
“我的吞咽任务”模块树:

index.js
tasks/
  clean.js
  assets.js
  ...
index.js(简化版):

但是,当我使用
gulp-T
从“ProjectA”中请求已知任务时,命令的输出是空的


我遗漏了什么?

我通过将
gulp
实例从
gulpfile
传递到模块,并避免在本地要求gulp,终于让它工作起来了

我的结局是:

项目A:

gulpfile.js:

require('my-gulp-tasks')({
  version: '0.0.1',
  production: utils.env.production,
  port: ...
  // misc settings to customize tasks
});
var gulp = require('gulp');

require('my-gulp-tasks')(gulp, {
  // settings...
});
我的吞咽任务模块:

index.js:

module.exports = function (gulp, settings) {
  //...

  gulp.task('clean', require('./tasks/clean')(settings));

  return gulp;
}
clean.js:

var rm = require('gulp-rm');

module.exports = function (gulp) {
  return function () {
    return gulp.src('dist/**/*').pipe(rm());
  };
};

谢谢分享你的发现!我想知道怎么做,你帮我节省了很多时间。