Gulp
是一款基于流的前端自动化构建工具,类似于任务管理器,可以自动化的帮助我们完成开发过程中大量的重复工作,如预处理语言的编译,js
、css
、html
压缩混淆,图片尺寸优化等。其中文网的网址为 https://www.gulpjs.com.cn/,官网地址为 https://gulpjs.com/。下面来介绍Gulp
在项目中的使用步骤。
一、Gulp使用的基本步骤
1、全局安装gulp命令行工具
在安装和使用gulp
之前,必须先确保node
环境已经配置成功,具体步骤可参考文章 Node环境的配置与安装。完成node
环境的安装之后,我们可以在任意目录下,打开cmd
,键入命令-> npm install gulp -g
来进行gulp
的全局安装。可以通过命令-> gulp -v
来验证gulp
是否安装成功。如下图所示:
2、生成项目配置文件
我们在当前的项目文件目录下,打开cmd
,键入命令-> npm init
,可以全部回车即可在项目文件夹的根目录下生成一个package.json
的配置文件。
3、将gulp作为项目的开发依赖进行安装
在当前的项目文件目录下,打开cmd
,键入命令-> npm install gulp --save-dev
。(因为gulp
包当中即包含工具,也包含一些编程的API
,所以我们需要将gulp
作为项目的开发依赖安装到项目本地。)
4、创建任务主文件
我们在项目文件夹的根目录下创建一个gulp
的任务主文件,其文件名固定为gulpfile.js
。gulp
用于帮助我们机械化的完成一些重复的工作,其机制就是将重复的工作抽象成一个个的任务,故我们需要在主文件gulpfile.js
当中进行任务的注册。其基本代码结构为:
var gulp = require('gulp'); // 载入gulp模块
gulp.task('default',function(){ //注册一个任务
//当gulp执行default这个任务时,会自动执行该函数。
});
二、Gulp的使用示例
1、使用gulp完成文件自动化拷贝与监听
当我们需要将开发阶段的源码目录src
中的文件自动拷贝至发布上线阶段的文件目录dist
当中,并且监听源文件的变化,并及时自动更新拷贝文件。gulpfile.js
当中的示例代码如下所示:
var gulp = require('gulp');
gulp.task('copy',function(){ //注册一个拷贝的任务
gulp.src('./src/index.html')
.pipe(gulp.dest('./dist/'));
});
//当执行copy这个任务时,即可将src目录下的index.html文件拷贝至dist文件夹当中,文件名不变。
gulp.task('listen',function(){ //注册一个监听的任务
gulp.watch('./src/index.html',['copy']);
//监听src目录下的index.html文件,一旦文件发生变化并保存时,即可执行任务数组当中的copy任务。
});
在完成任务的注册之后,即可在项目文件夹下,打开cmd
,键入命令-> gulp listen
即可。
2、使用gulp自动完成less文件的编译、压缩与合并
gulp
可以配合许多插件(plugins
)来帮助我们完成这些重复性任务,当前支持的插件列表可以见官网 https://gulpjs.com/plugins/ 。例如我们可以使用插件gulp-less
来完成less
文件的编译成css
文件,使用插件gulp-cssmin
来完成css
文件的自动压缩,使用插件gulp-concat-css
来完成多个css
文件的合并,使用插件gulp-rename
来完成css
文件的重命名。
首先在安装这些插件,在项目文件夹下,打开cmd
,键入命令-> npm install gulp-less gulp-cssmin gulp-concat-css gulp-rename --save-dev
。再在gulpfile.js
当中进行插件模块包的引入与任务的注册,示例代码如下所示:
var gulp = require('gulp');
var less = require('gulp-less');
var cssmin = require('gulp-cssmin');
var concat = require('gulp-concat-css');
var rename = require('gulp-rename');
gulp.task('style',function(){
gulp.src('./src/style/*.less') //获取到style目录下所有的less文件
.pipe(less()) // 完成less文件编译,成为css文件
.pipe(concat('all.css')) // 将多个css文件合并为一个all.css文件
.pipe(cssmin()) // 完成css文件的压缩
.pipe(rename({suffix:'.min'})) //重命名文件名为all.min.css
.pipe(gulp.dest('./dist/style/')); //将all.css文件复制到dist文件夹的style目录下,文件名不变
});
在完成任务的注册之后,即可在项目文件夹下,打开cmd
,键入命令-> gulp style
即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。