Grunt plugin for automating resource versioning based on the MD5 hash of referenced files (works on CSS, HTML, SOYs)
Install this grunt plugin next to your project's gruntfile with: npm install grunt-rev-md5
Then add this line to your project's grunt.js
gruntfile:
grunt.loadNpmTasks('grunt-rev-md5');
Then specify your config:
grunt.initConfig({
revmd5: {
options: {
/** @required - base file system path for your resources (which MD5 will be calculated) */
relativePath: './',
/** @optional - when provided if a resource isn't found will fail with a warning */
safe: true,
/** @optional - let you define extentions and the file types (html or css). If not provided, a default set of types will be used. */
supportedTypes : {
'jsp' : 'html'
}
},
dist: {
/** @required - string (or array of) including grunt glob variables */
src: ['./static/*.html', './static/*.css', './static/*.soy'],
/** @optional - if provided a copy will be stored without modifying original file */
dest: './dist/static/'
}
}
});
There are two types of path resolution that this task do: relative and absolute.
- Relative. Imagine that you're referencing the file
image1.png
fromstyles.css
which is stored on/static/home/css
in this way:
background: url('../image1.png')
In this case our grunt task will go to css path and combine its path (the css) with the relative path resulting in `/static/home/image1.png'. This looks as the most comprehensive behavior in this case.
- Absolute. Imagine that you're referencing the file
image2.png
fromstyles.css
and you've set therelativePath
to be./public
background: url('/static/images/image2.png')
In this case our grunt task will go to the relativePath
and combine it with the resource path
resulting in `./public/static/images/image2.png'.
NOTE: We consider paths starting with . (or ..) as relative, and with / absolute. We're using the same aproach as the *NIX file-system.
- 0.1.0 Initial Release
- 0.2.0 Migrated to Grunt ~0.4.0