grunt-rev-md5

Automates resource versioning based on the MD5 hash of referenced files (works on CSS, HTML, SOYs)

npm install grunt-rev-md5
8 downloads in the last day
45 downloads in the last week
109 downloads in the last month

Grunt plugin for automating resource versioning based on the MD5 hash of referenced files (works on CSS, HTML, SOYs)

Getting Started

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/'
        }
    }
});

Notes about path location

There are two types of path resolution that this task do: relative and absolute.

  • Relative. Imagine that you're referencing the file image1.png from styles.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 from styles.css and you've set the relativePath 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.

Release History

  • 0.1.0 Initial Release
  • 0.2.0 Migrated to Grunt ~0.4.0
npm loves you