简介:
    gulp有着丰富的插件库,她能自动化地完成javascript、coffee、sass、less、html、image、css 等文件的的测试、检查、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤,能快速提高我们项目的开发效率。
1.gulpfile.js基本配置示例:
    通过此配置示例可以让我们快速编写js,css代码并打包压缩文件,减少文件资源大小。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 
 | var gulp = require('gulp');
 var sass = require('gulp-sass');
 var minifycss = require('gulp-minify-css');
 var cleancss = require('gulp-clean-css');
 var livereload = require('gulp-livereload');
 var babel = require('gulp-babel');
 var uglify = require('gulp-uglify');
 var autoprefixer = require('gulp-autoprefixer');
 
 gulp.task('sass', function () {
 gulp.src('./sass/**/*.scss')
 .pipe(sass())
 .pipe(cleancss({
 advanced: false,
 compatibility: 'ie7',
 keepBreaks: true,
 keepSpecialComments: '*'
 
 }))
 .pipe(autoprefixer({
 browsers: ['last 2 versions', 'Android >= 4.0'],
 cascade: true,
 remove:true
 }))
 .pipe(gulp.dest('./css'))
 .pipe(livereload());
 });
 
 
 gulp.task('babel', function () {
 gulp.src('./src/**/*.js')
 .pipe(babel({
 presets: ['es2015']
 }))
 .pipe(livereload())
 .pipe(uglify({
 
 
 }))
 .pipe(gulp.dest('./js'))
 });
 
 
 gulp.task('auto', function () {
 gulp.watch('./sass/**/*.scss', ['sass']);
 gulp.watch('./src/**/*.js', ['babel']);
 
 });
 
 gulp.task('default',['sass','auto','babel']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 
配置文件详解:
执行一个任务分三步走:
1.导入工具包 require(‘node_modules里对应模块’)  
| 1
 | var gulp = require('gulp'); 
 | 
2.定义一个任务(自定义任务名称)  
| 12
 3
 4
 5
 
 | gulp.task('test', function () {gulp.src('./sass/**/*.scss')
 .pipe(test())
 .pipe(gulp.dest('./css'))
 })
 
 | 
3.执行任务:
cmd命令提示符 
如果只是简单的配置了上面部分,每当我们修改了代码都需要重新执行命令gulp test,而且如果有多个任务就要执行多个命令,为了避免这么繁琐的操作可以加上如下配置:
| 12
 3
 4
 5
 
 | gulp.task('auto', function () {gulp.watch('./src/**/*.js', ['test']);
 });
 gulp.task('default',['auto','test']); //定义默认任务
 
 
 | 
这样我们只需要输入一次命令gulp,就可以监听到每次代码的修改,自动帮我们编译,减少了很多繁琐的操作。
2.使用gulp编译css
1.gulp-sass的使用:
1.简介:SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。
2.本地安转:npm install gulp-less –save-dev
3.配置gulpfile.js
1.配置:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | var sass = require('gulp-sass');
 
 
 gulp.task('sass', function () {
 gulp.src('./sass/**/*.scss')
 .pipe(sass({
 outputStyle: 'compact'
 
 
 
 
 }))
 .pipe(gulp.dest('./css'))
 });
 
 
 | 
2.sass使用示例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | $blue : #1875e7; .class {
 font-size: 12px;
 }
 .main{
 color:$blue;
 @if 1 + 1 == 2 {
 border: 1px solid red;
 }@if 5 < 3 {
 border: 2px dotted blue;
 }
 .parent{
 margin-left:10px + 20px;
 &:hover{
 cursor: pointer;
 @extend .class;
 }
 }
 }
 
 
 | 
4.执行任务:
命令提示符:gulp sass
5.编译结果:
![image]()
2.gulp-minify-css的使用:
1.插件介绍:压缩css文件,减小文件大小,并给引用url添加版本号避免缓存
2.本地安转:npm install gulp-minify-css –save-dev。
3.配置gulpfile.js
1.配置
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | var minifycss = require('gulp-minify-css');
 
 gulp.task('sass', function () {
 gulp.src('./sass/**/*.scss')
 .pipe(sass({
 outputStyle: 'compact'
 
 
 
 
 }))
 .pipe(minifycss({
 advanced: false,
 compatibility: 'ie7',
 keepBreaks: true,
 keepSpecialComments: '*'
 
 }))
 .pipe(gulp.dest('./css'))
 });
 
 
 
 | 
2.使用示例:
![image]()
4.执行任务:
命令提示符:gulp sass
5.编译结果:
![image]()
编译之后的css文件被压缩了
3.gulp-autoprefixer:
1.插件介绍:根据设置浏览器版本自动处理浏览器前缀
2.本地安转:npm install gulp-autoprefixer –save-dev。
3.配置gulpfile.js
1.配置
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | var autoprefixer = require('gulp-autoprefixer');
 
 gulp.task('sass', function () {
 gulp.src('./sass/**/*.scss')
 .pipe(sass({
 outputStyle: 'compact'
 
 
 
 
 }))
 .pipe(autoprefixer({
 browsers: ['last 2 versions', 'Android >= 4.0'],
 cascade: true,
 remove:true
 }))
 .pipe(gulp.dest('./css'))
 });
 
 
 
 | 
2.使用示例:
![image]()
4.执行任务:
命令提示符:gulp sass
5.编译结果:
浏览器中的编译结果:
![image]()
3.使用gulp编译js
1.gulp-babel的使用:
1.介绍:gulp-babel是可以将ES6编译成大多数浏览器可识别的ES5规范
2.本地安转:
1.npm install gulp-babel –save-dev
2.npm install babel-preset-es2015 –save-dev
3.配置gulpfile.js
1.配置:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | var less = require('gulp-babel');
 
 
 
 gulp.task('babel', function () {
 gulp.src('./src/**/*.js')
 .pipe(babel({
 presets: ['es2015']
 }))
 .pipe(gulp.dest('./js'))
 });
 
 
 | 
2.ES6使用示例:
![image]()
4.执行任务:
命令提示符:gulp babel
5.编译结果:
![image]()
2.gulp-uglify的使用:
1.介绍:压缩js代码
2.本地安转: npm install gulp-uglify –save-dev
3.配置gulpfile.js
1.配置:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | var uglify = require('gulp-uglify');
 
 
 gulp.task('babel', function () {
 gulp.src('./src/**/*.js')
 .pipe(babel({
 presets: ['es2015']
 }))
 .pipe(uglify({
 
 
 }))
 .pipe(gulp.dest('./js'))
 });
 
 
 | 
2.ES6使用示例:
![image]()
4.执行任务:
命令提示符:gulp babel
5.编译结果:
![image]()
gulp插件库还有其他很多优秀的插件,可以根据自己的需要引入。
此dome在我的github上,可以下载自行查看https://github.com/xiongcao/project-gule