gulp命令的说明

gulp模块中,定义的方法

gulp.src()

作用是 指定 要执行打包压缩规范的 文件,所在的位置
*.css       * 称为 通配符 作用是 表示 可以是 任意内容
*.css  文件名是任意名称  扩展名是 css 的文件
*.*    文件名和扩展名是 任意内容 也就是等于是 所有的文件

gulp模块中定义的方法

.pipe() 

作用是: 执行() 中 定义的 函数方法,打包规范等
效果类似于链式编程,逐步执行

gulp模块中定义的方法

gulp.dest()

作用是: 将打包好的文件,存储到指定的位置中
如果没有对应的文件,文件夹,会自动创建文件文件夹

 gulp模块中定义的方法

gulp.watch()

作用是: 会监听设定的程序的执行有两个参数:

参数1: 监听的文件
参数2: 文件改变时,需要执行的打包规范
赋值的打包规范,是 函数的名称 不能有 ()

模块化开发的形式 只能在 node.js 中使用

module.exports.default

只能使用 cmd 使用 nodejs 语法运行 js文件才能使用

设定 gulp 默认 执行的程序

设定之后 不再使用 node gulpfile.js 来运行程序
直接使用 gulp 来运行程序
会 输出 所有执行的 程序的步骤 和 时间

gulp模块中定义的方法

gulp.series()

作用是: 按照顺序,逐一执行设定的程序内容

gulp模块中定义的方法

gulp.parallel()

作用是: 同时执行,所有设定的程序内容

制定设定 函数程序内容

gulp.task(参数1,参数2)

参数1: 执行的规范的名称
参数2: 执行的具体程序

gulp程序的套路

1.加载 依赖包

2.设定各种文件的 打包规范

3.设定 监听规范

监听不同的文件,文件内容改变时,执行对应的 打包规范

4.设定 删除规范

5.设定 服务器规范

6.设定 导出的默认程序按照顺序执行

实例

// 1,加载各种依赖包
// 加载gulp依赖包
const gulp = require('gulp');

// 加载 css 依赖包
// 打包压缩css文件依赖包
const cssmin = require('gulp-cssmin');
// 自动添加前缀的依赖包
const autoprefixer = require('gulp-autoprefixer');

// 加载 js依赖包
// 压缩ES5语法规范的js文件
const uglify = require('gulp-uglify');
// 将ES6语法转化为ES5
const babel = require('gulp-babel');

// 加载 html依赖包
const htmlmin = require('gulp-htmlmin');

// 加载 webserver依赖包
const webserver = require('gulp-webserver');

// 记载 del 删除依赖包
const del = require('del');


// 2,指定 打包压缩规范
// css打包规范
const cssHandler = function(){
    return gulp.src( './src/css/*.css' ).pipe( autoprefixer() ).pipe( cssmin() ).pipe( gulp.dest( './dist/css' ) );
}
// js打包规范
const jsHandler = function(){
    return gulp.src( './src/js/*.js' ).pipe( babel({presets:['@babel/env']}) ).pipe( uglify() ).pipe( gulp.dest( './dist/js' ) );   
}
// html打包规范
const htmlHandler = function(){
    return gulp.src( './src/pages/*.html' ).pipe( htmlmin({
        removeAttributeQuotes:true,          // 删除属性中的双引号
        removeComments:true,                 // 删除注释
        removeScriptTypeAttributes:true,     // 删除<script>的type="text/javascript"
        removeStyleLinkTypeAttributes:true,  //删除<style>和<link>的type="text/css" 
        collapseBooleanAttributes:true,      // 布尔属性,只写属性,不写属性值
        collapseWhitespace:true,             // 删除标签之间的空格
        minifyCSS:true,                      // 压缩内部css样式
        minifyJS:true,                       // 压缩内部js代码
    }) ).pipe( gulp.dest( './dist/pages' ) );   
}
// 不用压缩的内容,直接移动到指定的文件夹中
// 图片 没有打包压缩的过程,直接就是移动文件
const imgHandler = function(){
    return gulp.src( './src/images/*.*' ).pipe( gulp.dest( './dist/images' ) );
}
// 别人压缩好的js 没有打包压缩的过程,直接就是移动文件
const ditHandler = function(){
    return gulp.src( './src/dit/*.*' ).pipe( gulp.dest( './dist/dit' ) );
}

// 3,制定监听规范
const watchHandler = function(){
    gulp.watch( './src/css/*.css' , cssHandler );
    gulp.watch( './src/js/*.js' , jsHandler );
    gulp.watch( './src/pages/*.html' , htmlHandler );
    gulp.watch( './src/images/*.*' , imgHandler );
    gulp.watch( './src/dit/*.*' , ditHandler );
}

// 4,制定删除规范
// 删除的是 之前 dist 文件夹中 存储的 压缩文件
const delHandler = function(){
    return del(['./dist']);
}

// 5,指定服务器规范
const webserverHandler = function(){
    // 在 webserver 规范中 gulp.src() 是 指定 服务器运行的打包文件,所在的文件夹
    return gulp.src('./dist').pipe( webserver({
        host:'127.0.0.1',           // 服务器地址
        port:'8080',                // 端口号
        open:'./pages/index.html',   // 默认执行显示的文件
        livereload:true,            // 热启动,代码有改变,自动刷新页面
    }) )
}

// 6,制定导出的默认程序
// 之前运行程序 是 通过 node gulpfile.js 来运行程序
// 现在导出了默认程序,可以直接使用 gulp 就可以自动运行
module.exports.default = gulp.series(
    // 在执行所有程序之前先执行删除规范
    // 先删除之前dist文件夹中存储的压缩文件
    delHandler,   
    // 同时执行所有的打包规范
    // 生成新的 dist 压缩文件
    gulp.parallel( cssHandler , jsHandler , htmlHandler , imgHandler , ditHandler),
    // 执行服务器规范,启动一个建议的gulp服务器
    webserverHandler,
    // 执行监听程序,监听文件内容变化,执行对应的打包规范
    watchHandler,
);

相关视频

 


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。