这种重复是不对的。你怎么和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"));
});
答案 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");