Giter Club home page Giter Club logo

grunt-asset-hash's Introduction

grunt-asset-hash

Create a folder of asset files that include hashes

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-asset-hash --save-dev

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

grunt.loadNpmTasks('grunt-asset-hash');

The "asset_hash" task

Overview

In your project's Gruntfile, add a section named asset_hash to the data object passed into grunt.initConfig().

grunt.initConfig({
  asset_hash: {
    options: {
      preserveSourceMaps: false,  // Set to true when assets should share the same location as their source map.
      assetMap: 'assetmap.json',  // A mapping file between assets and their hashed locations. Set to `false` to skip generating.
      hashLength: 32,             // Number of hex characters in the hash folder. (0 means no hashing is done).
      algorithm: 'md5',           // Crypto algorithm used to hash the contents.
      srcBasePath: '',            // The directory prefix to be stripped from the asset map src paths.
      destBasePath: '',           // The directory prefix to be stripped from the asset map dest paths.
      hashType: 'folder',         // Defaults to `/$HASH/filename.ext`, but `'file'` will output `filename.$HASH.ext`.
      references: [],             // Files to replace references in (eg. a CSS file where `image.png` should become `image.$HASH.png`)
      deleteOriginal: false       // Delete the source file after copying it to a versioned filename (eg. effectively rename it)
    },
    your_target: {
      files: [
        { src:  ['assets/**/*'],  // A collection of assets to be hashed.
          dest: 'hashed'          // A folder to contained the hashed assets. Cannot be a file.
        }
      ]
    },
  },
});

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

  • 2015-12-04   v0.1.7   Add a parameter to delete unversioned original files after versioning
  • 2014-08-19   v0.1.6   Add a reference option to replace file paths (eg. in CSS) with hashed versions
  • 2014-07-29   v0.1.5   Make asset map generation optional.
  • 2014-07-29   v0.1.4   Allow hashing in filenames rather than folder names
  • 2014-06-24   v0.1.3   Support paths which are not normalised.
  • 2014-06-24   v0.1.1   Add options to strip base paths from final folder structure and asset map.
  • 2014-06-23   v0.1.0   Initial version.

grunt-asset-hash's People

Contributors

mattandrews avatar rich-nguyen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.