Nondeterministic Postrequisite Metaprotocol
    Have ideas to improve npm?Join in the discussion! »

    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

    Install

    npm i grunt-bust-cache

    DownloadsWeekly Downloads

    155

    Version

    1.0.8

    License

    MIT

    Unpacked Size

    13 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar