1 简单介绍
1 描述:
1 基于Node.js流的前端自动化构建工具 (执行 Gulp需要 Node运行环境)
2 gulp中文官网: https://www.gulpjs.com.cn/
3 插件地址: https://gulpjs.com/plugins/
2 作用:
1 把我们的源文件, 整理压缩到 dist 文件夹中, 成为我们的项目文件, 然后把 dist 里面的文件扔给运维就可以了
2 我们要记住不要忘了, 打包图片文件, 配置文件, 字体图标啊什么的这些, 注意 dist 文件放置的位置
2 安装
1 全局配置: 🔶
1 gulp -v
2 npm rm gulp --global
3 npm i gulp-cli -g
2 局部配置: 🔶
1 npm init -y
2 npm i gulp -D
3 根目录新建: gulpfile.js
3 执行 Gulp 配置文件 (命令行): 🔷
1 gulp
2 gulp 任务名
Gulp 常用 API
1 const gulp = require("gulp")
2 gulp.task 方法用来注册任务
--------------------------------------------------------------------------------------------
gulp.task('hh', function() {
console.log("zhang");
done();
});
function hh1() {
console.log("wei");
done();
}
exports.hh1 = hh1;
gulp.task('hh2', async () =>{
console.log("我也曾年少无知");
});
gulp.task('default', async () =>{
console.log("hello, 你个呆瓜");
});
--------------------------------------------------------------------------------------------
2 gulp.src 创建一个流
--------------------------------------------------------------------------------------------
gulp.src(a);
读取文件, 匹配规则
*.js
**.js
gulp.src('./js/a.js');
gulp.src('./js/*.js');
gulp.src(['./js/a.js','./js/b.js']); // 读取两个匹配的文件
gulp.src('./css/*.css')
gulp.src('./css/**/*.css')
--------------------------------------------------------------------------------------------.
3 gulp.dest 创建一个流
gulp.dest("path");
4 gulp.watch 监听globs
5 gulp.series()
gulp.series('task1', 'task2', 'task3'...);
6 gulp.parallel()
代码展示
--------------------------------------------------------------------------------------------.
const gulp = require("gulp");
const {task, src, dest, watch, series, parallel} = require('gulp');
gulp.task('xx', async () =>{
gulp.src('./css/*.css')
.pipe(gulp.dest("./test")) //放置文件 (把读取到的文件拷贝在指定目录下)
});
gulp.task('watch', async () => { //当监听的文件发生变化时, 就执行 xx 任务 (就是我们之前拷贝的任务, 可以和编写的任务实时同步)
gulp.watch('./css/*.css', gulp.series('xx'))
});
1 gulp.task('default', async () =>{ //默认注册的任务
console.log("我也曾年少无知");
});
2 task('default',series('db','watch')) //默认任务, 执行其他任务
--------------------------------------------------------------------------------------------.
Gulp 常用插件
1 加载模块:
--------------------------------------------------------------------------------------------
const {task, src, dest, watch, series, parallel} = require('gulp');
const concat = require("gulp-concat");
const ug = require("gulp-uglify");
const minc = require("gulp-minify-css");
const bab = require("gulp-babel");
const minh = require("gulp-minify-html");
--------------------------------------------------------------------------------------------
2 基础使用:
--------------------------------------------------------------------------------------------
1 文件合并 (JS CSS)
task("cssx", async () =>{
src('./css/*.css')
.pipe(concat('x.css'))
.pipe(dest('./dist/css'))
});
2 文件压缩 (JS) //2 安装: npm i gulp-uglify -D
task('jsxu',async ()=> {
src('./js/*.js')
.pipe(concat('x.js')) //合并 JS
.pipe(ug()) //压缩 JS
.pipe(dest("./dist/js")) //输出 JS
}); //合并&&压缩 JS
3 文件压缩 (CSS) //3 安装: npm i gulp-minify-css -D
task("cssx", async () =>{
src('./css/*.css')
.pipe(concat('x.css'))
.pipe(minc()) //压缩的这个文件
.pipe(dest('./dist/css'))
});
4 ES6/7.. 转 ES5 (JS) // 4 安装: npm install --save-dev gulp-babel @babel/core @babel/preset-env
task('jsxu',async ()=> {
src('./js/*.js')
.pipe(concat('x.js'))
.pipe(bab({presets: ['@babel/preset-env']}))
.pipe(ug()) //一定要转了之后再压缩
.pipe(dest("./dist/js"))
});
5 文件压缩 (HTML) // 5 安装: npm i gulp-minify-html -D
task("h1", async ()=>{
src('./*.html')
.pipe(minh())
.pipe(dest('./dist'))
.pipe(lp.reload())
});
6 打包任务
task('db', series('cssx', 'jsxu', 'h1')) //执行 db 任务就会执行 后面这3个任务 ++ 默认任务
--------------------------------------------------------------------------------------------