# gulp
# gulp 与 webpack
- gulp 核心理念 task runner
- 可以定义自己的任务系列,等待任务执行
- 基于文件 stream 的构建流
- 可以使用 gulp 的插件体系完成某些任务
- webpack 核心理念是 module builder
- 一个模块化打包工具
- 可以使用不同的 loader 来加载不同的模块
- 可以使用各种插件在 webpack 的打包周期完成其他的任务
- 对比与 webpack
- 思想更简单易用,更适合编写一些自动化的任务
- 大型项目中并不会 gulp 进行构建,它本身不支持模块化
# 编写 gulp 任务
- 简单编写任务
const { series } = require('gulp');
// `clean` 函数并未被导出(export),因此被认为是私有任务(private task)。
// 它仍然可以被用在 `series()` 组合中。
function clean(cb) {
// body omitted
cb();
}
// `build` 函数被导出(export)了,因此它是一个公开任务(public task),并且可以被 `gulp` 命令直接调用。
// 它也仍然可以被用在 `series()` 组合中。
function build(cb) {
// body omitted
cb();
}
exports.build = build;
exports.default = series(clean, build);
- 异步的任务
# gulp 任务组合
series 串行任务
parallel 并行任务
# gulp 文件读取
读取计算机的文件
- src()
const { src, dest } = require('gulp');
const copy = () => {
return src('./src/**/*.js').pipe(dest('./dist'));
};
module.exports { copy }
dest()
glob 匹配规则
- src 接收一个字符串
- 星号
- ** 双星
- ! 取反
# 使用 gulp 做文件转换
← Redux