Grunt task to automate cache busting
npm install grunt-bust-cache
$ npm install --save-dev grunt-bust-cache
`
$3
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)
$3
`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"
}
}
`
$3
`
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"
}
]
}
}
`
$3
#### 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 tags.
#### options.javascript
Type: Boolean
Default value: true
When set to true, bustCache will add a version hash to all JavaScript