贡献gulp插件两枚
来源:互联网 发布:淘宝购物客户资源 编辑:程序博客网 时间:2024/04/27 05:32
最近将项目的构建工具换成了gulp.js,实在受不了ant了,也没打算考虑grunt。具体为啥选gulp,最主要的原因还是讨厌写配置。
编写构建脚本过程中发现有些功能都没有现成插件可用,干脆自己写了得了。
我们做前端项目可能会面对如下两种场景:
- 有些页面(比如网站登录页)脚本并不多,为了减少请求不会引用外部脚本,而改用行间脚本。但这样有个问题,行间脚本没办法压缩。
- 样式文件中引用的图片地址为了防止缓存,需要加上版本号。手工改实在是太low了,另外,普通的将日期作为版本号的方式也不妥当。
针对上面两种场景,我写了两个插件来实现对应功能,分别是gulp-minify-inline-scripts和gulp-make-css-url-version。用法很简单:
gulp-minify-inline-scripts
var minifyInline = require('gulp-minify-inline-scripts');gulp.task('minify', function() { gulp.src('html/*.html') .pipe(minifyInline()) .pipe(gulp.dest('dist'))});
gulp-make-css-url-version
var makeUrlVer = require('gulp-make-css-url-version');gulp.task('stylesheets', function() { gulp.src('css/*.css') .pipe(makeUrlVer()) .pipe(gulp.dest('dist'))});
gulp-make-css-url-version默认是取图片文件的md5值作为版本号。
其实编写gulp.js插件是件十分容易的事,明确插件的功能,按照下面的模板,分分钟就可以来上一个。
var gutil = require('gulp-util');var through = require('through2');module.exports = function (options) { return through.obj(function (file, enc, cb) { options = options || {}; var self = this; if (file.isNull()) { this.push(file); return cb(); } if (file.isStream()) { this.emit('error', new gutil.PluginError(PLUGIN_NAME, 'Streaming not supported')); return cb(); } var html = file.contents.toString(); /** replace html func */ file.contents = new Buffer(html); self.push(file); cb(); });};
0 0
- 贡献gulp插件两枚
- 贡献gulp插件两枚
- gulp---gulp常用插件
- gulp-usemin <gulp插件>
- gulp插件/gulp模块
- gulp.spritesmith <gulp插件>
- gulp.order <gulp插件>
- gulp-filter <gulp插件>
- gulp 插件
- gulp插件
- gulp 插件
- gulp插件
- gulp-:gulp插件/gulp模块介绍
- gulp常用插件-gulp-autoprefixer
- gulp常用插件-gulp-uglify
- gulp常用插件-gulp-imagemin
- gulp常用插件
- gulp常用插件使用
- js实现页面跳转倒计时
- 遇到问题----jsp本机无乱码,部署到服务器上有乱码
- Halcon例程学习之距离变换(distance_transform)
- 调试 Nginx 的配置
- 谈谈“理论和空想”
- 贡献gulp插件两枚
- POJ 2481 Cows 简单树状数组区间覆盖
- 【遇到的问题】——浏览器兼容性
- [leetcode 140] Word Break II
- Hadoop2体系结构
- ALFS on Centos 7
- C++语法总结查询
- 轻量级 PHP 框架 TinyLara 发布
- 图