Gulp配置文件详解

栏目: Node.js · 发布时间: 7年前

内容简介:Gulp配置文件详解

前言

前几天写了gulp的基础自动化构建的api。

gulp.src 文件源位置
gulp.task 构建任务名和函数
gulp.dest 放置文件位置
gulp.watch 监控

这次介绍下gulp的几个常用插件和其基本配置:

gulp常用插件

注意: + "使用插件前要先安装对应插件 npm install 插件名字 --save-dev" + "如果构建的任务没有放在默认任务default中 命令行执行的时候 gulp 任务名" + "task中路径都是与gulpfile放在同一级下" + "gulp.dest()指明的目录可以自动被创建"

js压缩,合并,重命名任务

let gulp = require('gulp');
let concat = require('gulp-concat');  // 合并
let uglify = require('gulp-uglify');  // 压缩
let rename = require('gulp-rename');  // 重命名

 let jshint = require('gulp-jshint');  // 注意需要同时安装 jshint
 gulp.task('scripts', function() {  // 这个任务的名称是 scripts
 gulp.src('src/js/*.js')  // 将 src/js/ 目录下的所有 js 文件合并
     .pipe(jshint())
     .pipe(jshint.reporter('default'))
     .pipe(concat('all.js'))  // 指定合并后的文件名为 all.js
     .pipe(gulp.dest('dist/js/'))  // 保存合并后的文件
     .pipe(uglify())  // 压缩
     .pipe(rename('all.min.js'))  // 重命名
     .pipe(rename({suffix: '.min'}))  // 和上一行等效
     .pipe(gulp.dest('dist/js/'));
});

sass编译

let gulp = require('gulp');
let sass = require('gulp-sass');  // sass -> css
let prefixer = require('gulp-autoprefixer');  // 增加前缀
let minify = require('gulp-minify-css');  // css 压缩
let notify = require('gulp-notify');  // 打印提醒语句
let concat = require('gulp-concat');  // 合并

// 编译Sass
 gulp.task('css', function() {  // 任务名
 gulp.src('sass/*.scss')  // 目标 sass 文件
      .pipe(sass())  // sass -> css
      .pipe(prefixer('last 2 versions'))  // 参数配置参考 <https://github.com/ai/browserslist>
       .pipe(minify())  // 压缩
      .pipe(gulp.dest('css'))  // 目标目录
      .pipe(notify({message: 'done'}))
      .pipe(concat('all.min.css'))  // 合并
      .pipe(gulp.dest('css'));  // 目标目录
});

图片压缩

let gulp = require('gulp');
let imagemin = require('gulp-imagemin');
let cache = require('gulp-cache');  // 减少重复压缩

gulp.task('images', function() {
    gulp.src('src/images/*')
        .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })))
        .pipe(gulp.dest('dist/images/'));
});

监控文件

gulp.task('watch', function() {  // 指定任务名为 watch
    gulp.watch('src/sass/a.scss', ['sass']);// 监控 a.scss 文件,如果有修改,则执行 sass 任务
});

删除文件

let gulp = require('gulp');
let clean = require('gulp-clean');

gulp.task('clean', function() {
    return gulp.src(['dist/js/*', 'dist/sass/*', 'dist/images/*'], {read: false})
    .pipe(clean());
});

ES6->ES5

安装插件 npm install gulp-babel babel-preset-es2015 --save-dev

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

gulp.task('scripts', function() {
    gulp.src('src/js/a.js')
        .pipe(babel({  // es6 -> es5
       presets: ['es2015']
}))
        .pipe(gulp.dest('dist/js/'))
});

参考文章: http://www.cnblogs.com/zichi/p/6250504.html

总结

除此之外还有很多插件可供安装,如果引入插件很多可以尝试使用 gulp-load-plugin模块、还有borswer-sync等模块,由于这方面我还没有认真看过所以这里就不详细介绍了,如果个人在刚学gulp的话,我推荐多敲几遍gulpfile.js的配置文件,尝试一些自动化构建自己的小项目,然后根据项目需求再引入其他插件使用或者使用模块。


以上所述就是小编给大家介绍的《Gulp配置文件详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

嗨翻C语言

嗨翻C语言

[美]David Griffiths、[美]Dawn Griffiths / 程亦超 / 人民邮电出版社 / 2013-9 / 99.00

你能从这本书中学到什么? 你有没有想过可以轻松学习C语言?《嗨翻C语言》将会带给你一次这样的全新学习 体验。本书贯以有趣的故事情节、生动形象的图片,以及不拘一格、丰富多样的练 习和测试,时刻激励、吸引、启发你在解决问题的同时获取新的知识。你将在快乐 的气氛中学习语言基础、指针和指针运算、动态存储器管理等核心主题,以及多线 程和网络编程这些高级主题。在掌握语言的基本知识......一起来看看 《嗨翻C语言》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码