全局安装gulp-cli
命令npm install -g gulp-cli,检测是否安装成功gulp -v
![](https://img-blog.csdnimg.cn/img_convert/d057d45c5d17a895406f596be1946015.png)
在项目中安装gulp
使用npm init初始化项目
![](https://img-blog.csdnimg.cn/img_convert/5f63ffb117a0c16c9bece2fe1cd3d85b.png)
局部安装gulp npm i gulp@4.0.2 --save-dev
![](https://img-blog.csdnimg.cn/img_convert/9c125fd529fe6986b201cc788763b4cd.png)
--save-dev表示将gulp作为devDependencies保存到package.json文件中
安装完成后package.json文件中会出现gulp及其版本号
![](https://img-blog.csdnimg.cn/img_convert/a0e3b671680cfbc412da2a496779c4b0.png)
构建项目
在项目根目录下创建gulpfile.js文件(注意文件名不能随意更改)
在gulpfile.js文件中编写构建项目的任务
![](https://img-blog.csdnimg.cn/img_convert/41e90e73d9d56a7a440947000a78211f.png)
使用gulp first 执行名字为first的任务
![](https://img-blog.csdnimg.cn/img_convert/27ffb05716d705e08121092e4100fe47.png)
结果为
![](https://img-blog.csdnimg.cn/img_convert/9bbf6c0f81ff8e68ee39501097ca2b62.png)
可以看到在dist文件夹里创建了a.css文件
在项目中使用gulp
压缩并抽取HTML中的公共代码
安装gulp-htmlmin插件
![](https://img-blog.csdnimg.cn/img_convert/f7f631ddb2f081f925c0c8aa815cf4d0.png)
安装gulp-file-include插件
![](https://img-blog.csdnimg.cn/img_convert/746661c364e510919351b43b880a022d.png)
引用插件
![](https://img-blog.csdnimg.cn/img_convert/a405d24900add4680639ae8eff3ccdc8.png)
创建任务
![](https://img-blog.csdnimg.cn/img_convert/60fbc0e4701df39e23a03a2d4cc6a53f.png)
执行后可以看到
![](https://img-blog.csdnimg.cn/img_convert/df59552bded463be1c9bd6840e922b6c.png)
![](https://img-blog.csdnimg.cn/img_convert/1b7c41d9e0cef87efb07a6259a51b240.png)
![](https://img-blog.csdnimg.cn/img_convert/9238434c39e3f3bacf1963aa9744b7d3.png)
压缩并转换Less语法
安装gulp-less插件
npm i gulp-less
引用gulp-less插件
const less=require('gulp-less')
创建d.less文件
![](https://img-blog.csdnimg.cn/img_convert/66599a01d9f3ebae702edc41aca2cb41.png)
创建任务
![](https://img-blog.csdnimg.cn/img_convert/b14c11e2aae4a43f789825791ac691a8.png)
执行后可以看到
![](https://img-blog.csdnimg.cn/img_convert/e5095bb132a1f178617400768a8cb3ef.png)
压缩并转换ES6语法
安装gulp-bable和gulp-uglify
npm i gulp-babel @babel/core @babel/preset-env,@后面表示它所依赖的插件
引用gulp-bable和gulp-uglify
创建base.js
![](https://img-blog.csdnimg.cn/img_convert/095ad90f26fce187cd341c30ffb2f2f6.png)
创建任务
![](https://img-blog.csdnimg.cn/img_convert/32d88e481c33c96a23b6fef9582923f9.png)
结果为
![](https://img-blog.csdnimg.cn/img_convert/bbb9e1d6964798a56972e9470feabf18.png)
复制目录
创建任务
![](https://img-blog.csdnimg.cn/img_convert/2a4d2b1ab946f84dbe78527afc81ffd8.png)
结果为
![](https://img-blog.csdnimg.cn/img_convert/cec6366dd26a98ed9acc0294e8dbbaa3.png)
执行全部构建任务
使用gulp.series()可以顺序执行任务
例如创建一个名为default的任务
![](https://img-blog.csdnimg.cn/img_convert/1ff2df473febff50a0c5d3ec1f56c4a3.png)
执行default任务可以顺序执行后面的任务