grunt-bust-cache

1.0.8 • Public • Published

grunt-bust-cache npm version Build Status

Grunt task to automate your cache-bust configuration

Getting Started

This plugin requires minimum versions of Node 4 (and up) and Grunt 1 (and up).

Install

$ npm install --save-dev grunt-bust-cache

The "bustCache" task

Use the bustCache task for cache busting static files in your application. This allows the assets to have a large expiry time in the browsers cache and will only be forced to use an updated file when the contents of it changes.

This plugin supports:

  • Hash calculation in multiple formats
  • Multiple cache bust methods (including RequireJS's urlArgs)

Example Usage

bustCache: {
  dev: {
    options: {
      hashType: "timestamp", // git, npm, maven, timestamp
      css: true,
      requireJs: true,
      javascript: false
    },
    src: "path/to/your/projects/index.html"
  },
  prod: {
    options: {
      hashType: "maven", // git, npm, maven, timestamp
      css: true,
      requireJs: true,
      javascript: true
    },
    src: "path/to/your/projects/index.html"
  }
}

Supported File Paths

bustCache: {
  foo: {
    // Path to a single file
    src: "path/to/your/projects/index.html"
  },
  bar: {
    // Specify both source and destination
    src: "path/to/your/source/file.html", // Can be string or array
    dest: "path/to/your/destination/file.html"
  },
  baz: {
    // Specify multiple file pairs
    files: [
      {
        src: "path/to/your/source/file.html",
        dest: "path/to/your/destination/file.html"
      }
    ]
  }
}

Options

Summary

// Here is a short summary of the options and some of their 
// defaults. Extra details are below.
options: {
  css: true,                   // Add hash string to CSS includes
  javascript: true,            // Add hash string to JS includes
  requireJs: false,            // Add requirejs config which includes hash string
  urlKey: "v",                 // Querystring variable name to contain the hash

  hashType: "timestamp",       // Hash type.  Values include: git, npm, maven, timestamp
  pathToGitRepo: "./",         // Location of the git repo (used in finding the git SHA-1 hash)
  pathToPom: "./pom.xml"       // Localtion of the (used in finding the Maven project verison)
}

options.css

Type: Boolean
Default value: true

When set to true, bustCache will add a version hash to all CSS <link> tags.

options.javascript

Type: Boolean
Default value: true

When set to true, bustCache will add a version hash to all JavaScript <script> tags.

options.requireJs

Type: Boolean
Default value: false

When set to true, bustCache will add a RequireJs config block that sets the urlArgs to the version hash. Learn more about RequireJs urlsArgs parameter.

options.hashType

Type: String
Default value: 'timestamp' Possible values: 'git', 'npm', 'maven', 'timestamp'

  • timestamp: runs simple JavaScript during the build to generate a unique hash

  • git: queries git for the latest commit hash using: git rev-parse --verify HEAD

  • npm: opens the project.json file to get the project version

  • maven: opens the pom.xml to get the project version

Alternatives

https://www.npmjs.com/package/grunt-replace

Credits

This plugin was inspired by grunt-cache-bust

Dependents (0)

Package Sidebar

Install

npm i grunt-bust-cache

Weekly Downloads

211

Version

1.0.8

License

MIT

Unpacked Size

13 kB

Total Files

5

Last publish

Collaborators

  • tallbrick