grunt-img-md5
The best Grunt plugin ever.
Getting Started
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-img-md5 --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-img-md5');
The "img_md5" task
Overview
In your project's Gruntfile, add a section named img_md5
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
img_md5: {
options: {
},
files: {
},
map: function(filename){
}
},
});
Options
options.Base
Type: String
Default value: ', '
process gets img absolute path according to options.Base and img's url
options.Target
Type: String
Default value: '.'
process write img according to options.Target and img's url
options.RegExp
Type: Array(RegExp)
Default value: null
this plugin matches 'src="../img/a.png"' and 'url(..img/a.png)' in defalut config,you can add More RexExp which can
return a Array and Array[1] is img's url
function map
return new file path
Usage Examples
grunt.initConfig({
img_md5: {
html: {
options:{
Base:'md5Src/html/',
Target:"md5Src/html/",
RegExp:[/data-url\s*=\s*["']([^<">']+?\.(jpg|png|gif))/g]
},
files: {
'html/': 'html/*.html'
},
map: function(filename){
var newfilename = filename.replace('html/',"html/");
return newfilename;
}
},
},
});
grunt.initConfig({
img_md5: {
html: {
options:{
BaseMap: function (v) {
return path.join('md5Src/html/',v);
},
TargetMap:function (v) {
return path.join('md5Src/html/',v);
}
},
files: {
'html/': 'html/*.html'
},
map: function(filename){
var newfilename = filename.replace('html/',"html/");
return newfilename;
}
},
},
});
##test
run
npm run test
you can see release folder build in test folder
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)