UNPKG

grunt-bust-cache

Version:
134 lines (99 loc) 3.83 kB
# grunt-bust-cache [![npm version](https://badge.fury.io/js/grunt-bust-cache.svg)](https://badge.fury.io/js/grunt-bust-cache) [![Build Status](https://travis-ci.org/tallbrick/grunt-bust-cache.svg?branch=master)](https://travis-ci.org/tallbrick/grunt-bust-cache) > 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 ```js 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](http://requirejs.org/docs/api.html#config-urlArgs). #### 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](https://github.com/hollandben/grunt-cache-bust)