javascript - Gulp 4 默认任务与串行和并行
问题描述
我使用 Gulp 在 SO 上查看了许多不同的帖子
CLI version: 2.3.0
Local version: 4.0.2
并尝试了多种方法来实现 gulp 4 默认任务声明:
exports.default = gulp.series(clean, (done) => {
gulp.parallel(styles, scripts);
done();
});
gulp.task('default',
gulp.series(clean, (done) => {
gulp.parallel(scripts, styles);
done();
});
);
function production () {
return gulp.series(clean, function (done) {
gulp.parallel(styles, scripts);
done();
})
}
exports.default = production
清洁功能很简单:
function clean(cb) {
console.log("clean");
del(["dist"]);
cb();
}
为了测试,我创建了一个测试函数:
function test() {
console.log("in test");
return (
gulp.src(paths.styles.src)
.pipe(notify("Styles rendered"))
);
}
exports.test = test;
和一个测试默认功能:
exports.default = gulp.series(clean, (done) => {
console.log("before styles and scripts");
gulp.parallel(test);
console.log("after styles and scripts");
done();
});
打印到终端的是:
- “干净的”
- “在样式和脚本之前”
- “在样式和脚本之后”
但没有“测试中”。
我在这里想念什么?
解决方案
不确定这是否是 Gulp 的设计方式,但基于这个答案,对我有用的代码是:
exports.default = gulp.series(clean, (callbackA) => {
return gulp.parallel(styles, scripts, (callbackB) =>
{
callbackA();
callbackB();
})();
});
我要调用的三个任务是:
function clean(cb) {
del(["dist"]);
cb();
}
// Define tasks after requiring dependencies
function styles() {
console.log("in styles");
return (
gulp.src(paths.styles.src)
.pipe(sass())
.on("error", sass.logError)
.pipe(sourcemaps.init())
.pipe(sass())
.on("error", sass.logError)
.pipe(postcss([autoprefixer(), cssnano()]))
.pipe(sourcemaps.write())
.pipe(gulp.dest(paths.styles.dest))
// Add browsersync stream pipe after compilation
.pipe(browserSync.stream())
);
}
// Expose the task by exporting it
// This allows you to run it from the commandline using
// $ gulp style
exports.styles = styles;
function scripts() {
// Start by calling browserify with our entry pointing to our main javascript file
return ( gulp.src(paths.scripts.src)
.pipe(babel())
.pipe(uglify())
// Then write the resulting files to a folder
.pipe(gulp.dest(paths.scripts.dest))
);
}
// Expose the task, this allows us to call this task
// by running `$ gulp build' in the terminal
exports.scripts = scripts;
推荐阅读
- java - 使用浏览器运行自动测试时出错。怎么运行?
- python - 在 Google colab 中解码 .xlsx 时遇到问题
- xcode - Xcode 的提交在分支之外。如何返回分支而不丢失新代码?
- html - 修复第一行末尾的 flex 元素
- r - 在不同键下的 R 中的多重聚集
- julia - 向数组添加附加维度
- c++ - 使用带有 Eigen 的 OpenGL 存储顶点数据和 glVertexAttribPointer
- java - 即使 Bean 是通过 @Bean 创建的,也会出现 NoSuchBeanDefinitionException
- node.js - 收到错误:发送后无法设置标题
- sql - 使用多个命名空间不工作的更新 XML 值