Gulp
是一款基于流的前端自动化构建工具,类似于任务管理器,可以自动化的帮助我们完成开发过程中大量的重复工作,如预处理语言的编译,js
、css
、html
压缩混淆,图片尺寸优化等。其中文网的网址为 ,官网地址为 。下面来介绍Gulp
在项目中的使用步骤。
一、Gulp使用的基本步骤
1、全局安装gulp命令行工具
在安装和使用gulp
之前,必须先确保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
)来帮助我们完成这些重复性任务,当前支持的插件列表可以见官网 。例如我们可以使用插件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
即可。