将参数传递给gulp 4任务

时间:2018-10-27 04:43:34

标签: gulp

我想创建一个可重复使用的任务,所以我尝试了method one

serve.js

const bs = require('browser-sync').create('serve');

function serve(baseDir, done) {
  bs.init(
    {
      server: {
        baseDir: baseDir,
      },
    },
  );

  done();
}

export default serve;

gulpfile.babel.js

import gulp from 'gulp';
import serve from './serve.js';

gulp.task('dev', gulp.series(
  serve('./dev')
));

运行gulp dev,但错误显示为TypeError: done is not a function

我试图添加一个包装器函数以将baseDir传递到任务中,该任务现在起作用了。让我们称之为method two

serve.js

function serveWrapper(baseDir) {
  return function serve(done) {
    ...
  }
}

export default serveWrapper;

gulpfile.babel.js

import gulp from 'gulp';
import serveWrapper from './serve.js';

gulp.task('dev', gulp.series(
  serveWrapper('./dev')
));

但是还有其他方法,所以我不需要创建包装函数?以及为什么错误消息显示在method one上?

0 个答案:

没有答案