gulp常用插件(2)

最后更新于:2022-04-02 05:32:11

[TOC] ### 前言 本文将继续前面的gulp系列插件,介绍一些其他你可能用到插件, * 以下模块地址均为官网地址,如果觉得请求地址慢,可以访问淘宝镜像的包说明地址,http://npm.taobao.org/ * 以下模块介绍顺序不分先后,代码仅供参考,亲测可用。 * 所有的模块使用都需要require引入,如果下面代码有遗漏请自觉加入。 ### gulp-rev,gulp-rev-format,gulp-rev-replace * 模块地址:https://npm.taobao.org/package/gulp-rev * 安装 ``` bash $ npm install gulp-rev --save-dev ``` * 使用场景:对文件添加md5签名,对可以搭配使用,对匹配的所有的相关引用文件都追加md5签名 ~~~javascript var rev = require('gulp-rev'), revFormat = require('gulp-rev-format'), revReplace = require('gulp-rev-replace'); gulp.task('rev',function(){ gulp.src('src/*.css') .pipe(rev()) .pipe(revFormat({//文件重命名 suffix: '.min', lastExt: false })) .pipe(gulp.dest('dist/css'))//指定文件检出的位置 .pipe(rev.manifest() ) .pipe(gulp.dest('dist/'));//指定rev-mainfest.json生成的位置 }) // 批量替换页面中引入的链接 gulp.task('rev-replace',['rev'],function(){ var manifest=gulp.src(['dist/*.json']); function modifyUnreved(filename){ return filename; } function modifyReved(filename){ console.log(filename); if(filename.indexOf('.min')>-1){ const _md5= filename.match(/\-[\w]*\.min/)[0].replace(/(\-|.min)*/g,''); const _filename= filename.replace(/\-[\w]*/,''); filename =_filename + "?major=" + _md5; return filename; } return filename; } //参数说明:manifest,参考的文件替换原则modifyUnreved,没有转化前的名字,modifyReved//转化后的名字 gulp.src(['src/*.html'])//需要替换的页面 .pipe(revReplace({ manifest: manifest, modifyUnreved: modifyUnreved, modifyReved: modifyReved })) .pipe(gulp.dest('dist')); }) ~~~ ### gulp.spritesmith * 模块地址:https://npm.taobao.org/package/gulp.spritesmith * 安装 ``` bash $ npm install gulp.spritesmith --save-dev ``` * 使用场景:开发完成之后利用任务将若干的小图自动拼接形成雪碧图,供开发使用,方便简单,可以支持css\less\sass\stylus等多种格式 ~~~javascript var spritesmith = require('gulp.spritesmith'); gulp.task('sprite', function () { gulp.src('src/images/sprite1/*.*') .pipe(spritesmith({ imgName: 'sprite1.png', cssName: 'sprite1.css', padding: 10 })).pipe(gulp.dest('src/images/sprites')) }) ~~~ ### browser sync * 模块地址:https://npm.taobao.org/package/browser-sync * 可参考的模块完整配置:[browerSync](https://www.kancloud.cn/csnikey/fepro-guide/390364) * 安装 ``` bash $ npm install browser-sync --save-dev ``` * 使用场景:开发阶段保证开发与调试实时同步,可以实现同一地址多端同步显示 ~~~ var browserSync = require('browser-sync').create(); var reload=browserSync.reload(); gulp.task('server',function(){ browserSync.init({ server: { baseDir: './', }, index:'./src/demo.html', reloadDelay: 1000, files:'./src', port: 8090 }); gulp.watch('./src/**/*', reload); }) ~~~ * 常用配置 1.如果你不想每次启动都打开新页面,可以配置open:false,默认是true 自动每次打开浏览器窗口按照本地地址访问 2.配置指定的浏览器,如果你默认的浏览器不是你的开发浏览器,那么可以指定下browser:['google chrome','firefox'] 3.proxy,配置使用代理机完成访问调试
';