Skip to content
This repository has been archived by the owner on Feb 16, 2019. It is now read-only.

caiguanhao/grunt-rename-assets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

grunt-rename-assets

Rename asset files with their MD5/SHA1 hashes.

Getting Started

This plugin requires Grunt ~0.4.0

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-rename-assets --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-rename-assets');

Options

skipIfHashed

Type: Boolean Default: true

Skip if file name already contains the hash.

algorithm

Type: String Default: sha1

Can be md5, sha1, sha256, etc. See possible algorithms.

format

Type: String Default: {{basename}}-{{hash}}{{ext&&("."+ext)}}

Format for the new file name. You can use these variables:

  • global: process, require, console, grunt
  • file: hash, basename, ext, realpath

inject

Type: Object Default: {}

Add more variables to use in format. Keys are the variable names.

startSymbol

Type: String Default: {{

endSymbol

Type: String Default: }}

callback

Type: Function Default: function() {}

The callback function gets two arguments (befores, afters) where befores and afters are the list of old and new file names respectively. You can use this to access the current Grunt task.

Example

grunt.initConfig({
  rename: {
    assets: {
      options: {
        skipIfHashed: true,
        startSymbol: '{{',
        endSymbol: '}}',
        algorithm: 'sha1',
        format: '{{timestamp()}}-{{basename}}-{{hash}}-{{require("fs").statSync(realpath).size}}.{{ext}}',
        inject: {
          timestamp: function() {
            return +new Date;
          }
        },
        callback: function(befores, afters) {
          var publicdir = require('fs').realpathSync('public');
          var path = require('path');
          var index = grunt.file.read('public/index.html'), before, after;
          for (var i = 0; i < befores.length; i++) {
            before = path.relative(publicdir, befores[i]);
            after = path.relative(publicdir, afters[i]);
            index = index.replace(before, after);
          }
          grunt.file.write('public/index.html', index);
        }
      },
      files: [
        { src: [ 'public/css/*.css', 'public/js/*.js' ] }
      ]
    }
  }
});

Developer

About

Rename asset files with their MD5/SHA1 hashes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published