gulp插件的使用

1.gulp API的常用方法

方法

说明

gulp.src()

获取任务要处理的文件

gulp.dest()

输出文件

gulp.task

建立gulp任务

gulp.watch

监控文件的变化

//引用gulp模块
const gulp = require('gulp');
//使用gulp.task()方法建立任务
gulp.task('first',callback=>{
    console.log('第一个gulp任务执行了')
    //使用gulp.src()获取要处理的文件
    gulp.src('./src/css/base.css')
    //将处理后的文件输出到dist目录
    .pipe(gulp.dest('dist/css'));
    callback();
    //回调函数
});

在命令行工具,运行定义的first任务

gulp first

插件

说明

gulp-htmlmin

压缩HTML文件

gulp-csso

压缩优化CSS

gulp-babel

JavaScript语法转换

gulp-less

Less语法转换

gulp-sass

Sass语法转换

gulpuglify

压缩混淆JavaScript文件

gulp-file-include

公共文件包含

browsersync

浏览器时间实时同步

2.压缩并抽取HTML中的公共代码

(1)npm工具下载安装gulp-htmlmin插件

npm install gulp-htmlmin

(2)在gulpfile.js文件中引用gulp-htmlmin插件

const htmlmin = require('gulp-htmlmin');

(3)在gulpfile.js文件中引用gulp-htmlmin插件,实现HTML文件中代码的压缩,示例如下:

gulp.task('htmlmin',(callback)=>{
    gulp.src('./src/*.html')
    //压缩html文件中的代码
    .pipe(htmlmin({collapseWhitespace:true}))
    .pipe(gulp.dest('dist'));
    callback();
    });

(4)在命令行工具,运行定义的htmlmin任务

gulp htmlmin

(5)下载安装gulp-file-include插件

npm install gulp-file-include

(6)在gulpfile.js文件中引用gulp-file-include插件

const fileinclude = require('gulp-file-include');

(7)在gulpfile.js文件中调用gulp-file-include插件


gulp.task ( 'htmlmin', (callback) => {
    gulp.src( './src/*.html ')
//抽取HTML文件中的公共代码
    .pipe (fileinclude ( ))
//压缩HTML文件中的代码
.pipe (htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest ( 'dist'));
callback();
});

(8)在命令行工具,运行定义的fileinclude任务完成对HTML文件公共代码的抽取

(9)创建HTML文件

在demo07\src目录下新建common目录,然后在common目录下创建header.html文件,并把头部的公共代码粘贴到 header.html 文件中

(10)修改代码

把demo07\src目录下的default.html文件和 article.html 文件的头部代码删除掉,修改为

@@include('/common/header.html')

(11)运行gulp htmlmin

打开命令行工具,切换到demo07目录,再次运行命令“gulp htmImin”。gulp任务执行成功后,打开dist目录下的default.html文件和 article.html文件,查看代码会发现这两个文件中都包含有header部分代码。

3.压缩并转换Less语法

(1)下载安装gulp-less插件

在项目下,通过npm工具下载安装gulp-less插件

npm install gulp-less

(2)在gulpfile.js 文件中引用gulp-less插件。

const less = require('gulp-less');

(3)在 gulpfile.js文件中调用gulp-less插件。

实现将Less语法转换为CSS语法
gulp.task('cssmin',(callback) => {
//选择css目录下的所有.less文件
    gulp.src('./src/css/*.less')
//将Less语法转换为cSS 语法.pi
    .pipe(less())
//将处理的结果输出
    .pipe(gulp.dest('dist/css'))
callback();
} );

(4)在demo07\src\lcss目录下,新建需要编译的 a.less文件

.headers {
width: 100px;
.logo{
height: 200px;
background-color: red;
}

上述代码使用Less语法提供的嵌套规则编写CSS代码。

(5 )打开命令行工具,切换到demo07目录,运行命令“gulp cssmin”

.headers {
width: 100px;
 }
.headers .logo {
height: 200px;
background-color: red;
 }

同时获取.less和.css两种类型的文件并对其进行压缩 可以将gulp.src('路径')中的字符串改成数组的形式

gulp.src(['./src/css/*.less','./src/css/*.css'])

(6)在demo07目录下,通过npm工具下载安装gulp-csso插件,对CSS代码进行压缩

npm install gulp-csso

( 7)在 gulpfile.js文件中引用gulp-csso插件

const csso = require('gulp-csso');

(8)在 gulpfile.js文件中调用gulp-csso插件,对CSS代码进行压缩

gulp.task( 'cssmin', (callback) =>
{
//选择css目录下的所有.less 文件以及.css文件
gulp.src(['./src/css/* .less', './src/ css/* .css ' ])
//将Less 语法转换为cSS语法
.pipe (less () )
//将cSS代码进行压缩
.pipe (csso ())
//将处理的结果输出
.pipe (gulp.dest ('dist/css ') )
callback();
 });

(9)打开命令行工具,切换到demo07目录,运行命令“gulp cssmin”

此时,打开css目录下的 a.css文件,会发现代码已经被压缩了

.headers{width: 100px }.headers .logo {height:200px; background-color:red}

4.压缩并转换ES6语法

(1)在C:\code\chapter02\demo07目录下,通过npm工具下载安装gulp-babel插件及它的依赖模块,实现ES6语法的转换

npm install gulp-babel @babel/core @babel/poreset-env

(2)在gulpfile.js文件中引用gulp-babel插件

const babel = require('gulp-babel');

(3)在 gulpfile.js文件中调用gulp-babel插件,实现ES6语法的转换


gulp.task ( 'jsmin', (callback) =>{
//选择js目录下的所有JavaScript 文件
gulp.src( './src/js/* .js ')
.pipe (babel({
//判断当前代码的运行环境,将代码转换为当前运行环境所支持的代码
presets: [ '@babel/env ']
}))
.pipe (gulp.dest ('dist/js ') );
callback();
 });

通过gulp.task()创建一个jsmin任务,然后调用babel()方法完成对ES6语法的转换。最后使用gulp.dest()方法将文件保存到dist目录下的js目录中。

(4)在demo07'srcljs目录下,新建需要编译的JavaScript文件(如 base.js文件)

const x =100;
 let y = 200;
const fn = ()=>{
console.log (1234);
};

(5)打开命令行工具,切换到demo07目录,运行命令“gulp jsmin”

gulp任务执行成功后,打开项目下的dist目录,然后打开js目录就可以看到js目录下新建了一个同名的base.js文件。base.js


"use strict" ;
var x= 100;
var y = 200;
var fn = function fn({
console.log (1234);
};

从base.css文件的代码可以看出,gulp-babel插件已经成功将ES6语法转换成了ES5语法。

下一步将要完成对JavaScript文件中的代码的压缩操作。

( 6)在demo07目录下,通过npm工具下载安装gulp-uglify插件

npm install gulp-up

(7)在gulpfile.,js文件中引用gulp-uglify 插件

const uglify  = require('gulp-uglify');

(8)在gulpfile.js文件中调用gulp-uglify插件,对JavaScript 代码进行压缩

1gulp.task( 'jsmin',(callback)=>{
//选择js目录下的所有JavaScript 文件
gulp.src('./src/js/* .js ')
.pipe (babel({
//判断当前代码的运行环境,将代码转换为当前运行环境所支持的代码
presets: [ '@babel/env ' ]
}) )
.pipe (uglify())
.pipe(gulp.dest ( 'dist/js' ));
callback();
 });

(9)打开命令行工具,切换到demo07目录,运行命令“gulp jsmin”

gulp任务执行成功后,打开项目下的dist目录,然后打开js目录就可以看到当前js目录下的 base.,js文件被压缩了

"use strict";"var x =100,y=200,fn=function(){console.log(1234)};

5.复制目录

下面要把src目录下的images目录和 lib目录复制到dist目录下

(1)在gulpfile.js文件中创建copy任务,进行目录复制操作

 gulp.task ( ' copy', (callback) =>{
gulp.src('./src/images/* ')
.pipe (gulp.dest ('dist/images ' ) );
gulp.src( './src/lib/* ')
.pipe(gulp.dest ( 'dist/lib') );
callback();
});

通过gulp.task()创建一个copy任务,分别使用gulp.src(获取src目录下的images目录和 lib目录,并使用gulp.dest()方法将images文件和lib文件保存到dist目录中。

6.执行全部构建任务

(1)在gulpfile.js 文件中创建default任务

gulp.task('default',gulp.series('htmlmin','cssmin','jsmin','copy'));

( 2)打开命令行工具,切换到demo07目录,运行“gulp default”命令

gulp default

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值