gulp-md5plus
v2.0.0
Published
md5 the static file and change the names in the quoted html
Downloads
46
Readme
gulp-md5-plus
md5 plugin for gulp ,md5 the static files(eg javascript style image files) ;then replace the filenames in css or the html if needed by passing the file or dir in the second parameter
从gulp-util迁移
使用这些步骤,您可以帮助插件作者从gulp-util迁移。
运行npm ls gulp-util以获取依赖于它的插件列表。
对于每个相关插件,运行npm issues {PLUGIN NAME}将打开问题跟踪器。
使用以下API替换,打开问题或请求删除gulp-util:
- gutil.File=> https://www.npmjs.com/package/vinyl
- gutil.replaceExtension=> .extname乙烯基对象的 属性或https://www.npmjs.com/package/replace-ext
- gutil.colors=> https://www.npmjs.com/package/ansi-colors
- gutil.date=> https://www.npmjs.com/package/date-format
- gutil.log=> https://www.npmjs.com/package/fancy-log
- gutil.template=> https://www.npmjs.com/package/lodash.template
- gutil.env=> https://www.npmjs.com/package/minimist
- gutil.beep=> https://www.npmjs.com/package/beeper
- gutil.noop=> https://www.npmjs.com/package/through2
- gutil.isStream=> .isStream()在乙烯基对象上使用该 方法
- gutil.isBuffer=> .isBuffer()在乙烯基对象上使用该 方法
- gutil.isNull=> .isNull()在乙烯基对象上使用该 方法
- gutil.linefeed=> '\n'在你的代码中使用字符串
- gutil.combine=> https://www.npmjs.com/package/multipipe
- gutil.buffer=> https://www.npmjs.com/package/list-stream
- gutil.PluginError=> https://www.npmjs.com/package/plugin-error
Usage
First, install gulp-md5-plus
as a development dependency:
npm install --save-dev gulp-md5-plus
Then, add it to your gulpfile.js
:
var md5 = require("gulp-md5-plus");
gulp.src("./src/*.css")
.pipe(md5(10,'./output/index.html'))
.pipe(gulp.dest("./dist"));
md5 all css files in the src folder and change these css names in the quoted html--index.html
gulp.task('img' ,function() {
var imgSrc = './static/img/**',
quoteSrc = './output/static/css/**/*.css', // [./output/static/css/**/*.css',./output/static/js/**/*.js']
imgDst = './output/static/img';
return gulp.src(imgSrc)
.pipe(imagemin())
.pipe(md5(10 ,quoteSrc))
.pipe(gulp.dest(imgDst));
});
first, optimize all images in the img folder including all sub folders; then md5 all these images and change these images' names in the quoted css files ;
####note the directory of the md5ed files in the imgDst folder is the same as that of original files in the imgSrc folder; and css files can refer the image file with the same name in different folder rightly;
API
md5(size,file,option)
size
Type: String
Default: null
you can pass the size to limit the size of the hash that is appended.
file
Type: String
Default: null
the file need to replace the file name of the md5ed files. dir is also supported
option
Type: Object
Default: null
option.dirLevel
Type: Number
Default: null
used to match the file with it's directory path. for example: there is a file
Dev/work/gulp-md5-plus/demo/source/img/sub_img/same.svg
;when settingdirLevel
to 1, the plugin will usesub_img/same.svg
to find this file in the quoted files;this option's main purpose is to replace the files with the same name in different paths. you can see demo for detail.
Example:
gulp.task('img' , ['css'],function() {
gulp.src('./source/img/**/*')
.pipe(md5(10 ,'./output/css/*.css',{
dirLevel : 1,
mappingFile: 'manifest.json',
connector: '.'
}))
.pipe(gulp.dest('./output/img/'));
});
The sample above will append the md5 hash(length : 10) to each of the file in the static/js folder then repalce the link file name in the output/html/ using md5ed file name; at last store all of that into the output folder.
option.connector
Type: String
Default: _
used to set the output file‘s connector; if use
.
the outfile will look likeimgfile.5546983ac2.png
,while default isimgfile_5546983ac2.png
option.mappingFile
Type: String
Default: null
set the file to write the mapping result ,for example
manifest.json
after set this option ;you should remove this file before gulp
; you can follow the demo;
Demo
I have add a demo to demonstate how to use this plugin; If you have any other questions ,pls add issues.
License
http://en.wikipedia.org/wiki/MIT_License[MIT License]