gulp的基本使用(二)
- 任务(Tasks)创建
- 任务(Tasks)分类
- series()和parallel()的区别
- series()
- parallel()
- 代码
- 运行命令
- 结果
- series() 和 parallel()根据环境运行
- series() 和 parallel()相互深层嵌套
- 当两个任务的前置条件是同一个任务运行的时候
- 代码更改为
任务(Tasks)创建
任务(Tasks)分类
- 公共任务(Public tasks):配置文件导出的任务,并且能够用命令gulp运行
- 私有任务(Private tasks):通过series()或parallel()命令运行的任务
const { series } = require('gulp');
// The `clean` function is not exported so it can be considered a private task.
// It can still be used within the `series()` composition.
function clean(cb) {
// body omitted
cb();
}
// The `build` function is exported so it is public and can be run with the `gulp` command.
// It can also be used within the `series()` composition.
function build(cb) {
// body omitted
cb();
}
exports.build = build;
exports.default = series(clean, build);
- 运行命令
gulp build
gulp
series()和parallel()的区别
series()
内部任务按顺序进行
parallel()
内部任务异步进行
代码
const { series,parallel } = require('gulp');
function javascript(cb) {
// body omitted
cb();
}
function css(cb) {
// body omitted
cb();
}
exports.jc = parallel(javascript, css);
运行命令
gulp jc
结果
series() 和 parallel()根据环境运行
const { series } = require('gulp');
function minify(cb) {
// body omitted
cb();
}
function transpile(cb) {
// body omitted
cb();
}
function livereload(cb) {
// body omitted
cb();
}
if (process.env.NODE_ENV === 'production') {
exports.build = series(transpile, minify);
} else {
exports.build = series(transpile, livereload);
}
series() 和 parallel()相互深层嵌套
const { series, parallel } = require('gulp');
function clean(cb) {
// body omitted
cb();
}
function cssTranspile(cb) {
// body omitted
cb();
}
function cssMinify(cb) {
// body omitted
cb();
}
function jsTranspile(cb) {
// body omitted
cb();
}
function jsBundle(cb) {
// body omitted
cb();
}
function jsMinify(cb) {
// body omitted
cb();
}
function publish(cb) {
// body omitted
cb();
}
exports.build = series(
clean,
parallel(
cssTranspile,
series(jsTranspile, jsBundle)
),
parallel(cssMinify, jsMinify),
publish
);
当两个任务的前置条件是同一个任务运行的时候
css任务之前需要运行clean 任务,javascript 任务之前需要运行clean 任务
// This is INCORRECT
const { series, parallel } = require('gulp');
const clean = function(cb) {
// body omitted
cb();
};
const css = series(clean, function(cb) {
// body omitted
cb();
});
const javascript = series(clean, function(cb) {
// body omitted
cb();
});
exports.build = parallel(css, javascript);
运行结果
代码更改为
const { series, parallel } = require('gulp');
function clean(cb) {
// body omitted
cb();
}
function css(cb) {
// body omitted
cb();
}
function javascript(cb) {
// body omitted
cb();
}
exports.build = series(clean, parallel(css, javascript));