Gulp重复

时间:2015-02-05 03:26:54

标签: node.js gulp

这种重复是不对的。你怎么和Gulp一起做这个?

gulp.task("default", function() {
  gulp.src("src/**/*.cjsx")
    .pipe(cjsx({bare: true}).on("error", gutil.log))
    .pipe(sourcemaps.init())
    .pipe(transpile({
      formatter: "bundle"
    }))
    .pipe(sourcemaps.write("./"))
    .pipe(gulp.dest("public"));

  gulp.src("src/**/*.js")
    .pipe(sourcemaps.init())
    .pipe(transpile({
      formatter: "bundle"
    }))
    .pipe(sourcemaps.write("./"))
    .pipe(gulp.dest("public"));
});

2 个答案:

答案 0 :(得分:2)

您可以使用gulp-if

它可能会像这样

gulp.task("default", function() {
  gulp.src("src/**/*.{cjsx,js}") // Gets both .cjsx and .js files

    .pipe(gulpif(/[.]cjsx$/, cjsx({bare: true}).on("error", gutil.log))) // Do this only if file is a .cjsx

    .pipe(sourcemaps.init())
    .pipe(transpile({
      formatter: "bundle"
    }))
    .pipe(sourcemaps.write("./"))
    .pipe(gulp.dest("public"));
});

答案 1 :(得分:1)

我建议你将这一项任务分成两个任务,一个用于编译自己旁边的cjsx文件(gulp.dest("src/")),然后用一秒来编译所有js文件。如果你想要的话,你可以让js任务依赖于cjsx,或者只是通过cjsx按顺序运行。

gulp.task('cjsx', ....);
gulp.task('js', 'cjsx', ....);

e.g。

gulp.task("cjsx", function() {
  gulp.src("src/**/*.cjsx")
    .pipe(cjsx({bare: true}).on("error", gutil.log))
    .pipe(gulp.dest("src"));
});

gulp.task("js", "cjsx", function () {
  gulp.src("src/**/*.js")
    .pipe(sourcemaps.init())
    .pipe(transpile({
      formatter: "bundle"
    }))
    .pipe(sourcemaps.write("./"))
    .pipe(gulp.dest("public"));
});

gulp.task("default", "js");