UNPKG

asset-cache-bust

Version:

Bust your asset cache using querystring hashes based on actual asset content

55 lines (42 loc) 2.42 kB
# Asset-cache-bust Bust the browser cache of your assets using query strings based on actual asset content. ## What it does This module parses HTML and finds `<link>` and `<script>` tags that contain a `href` or `src` and `data-finger-print` attribute. It then extracts the URL from those attributes and tries to read those files from disk. If a file was successfully read, it uses its content to create an MD5 hash. This hash is then used to append to the original URL as a query parameter in the form of: `v=md5stringGoesHere`. When all matched URLs have been replaced in the original HTML, it will be passed to the success callback. ## How to use it This module can used as a node module or through its CLI. > The given HTML should contain `<link>` or `<script>` tags in the following format for this package to > replace their URLs: `<link href="asset.css" data-finger-print />` or `<script src="some.js" data-finger-print></script>`. To use it as a node module, install it using: `npm install asset-cache-bust` See following example: ``` const assetCacheBust = require('asset-cache-bust'); assetCacheBust(validHtml) .fork( error => console.log(error), // Do something usefull with the error cacheBustedHtml => console.log(cacheBustedHtml) // Do something with the cache busted HTML ); ``` To use the CLI you have 2 options: * Install this package globally: 1. Install this module using `npm install -g asset-cache-bust` 2. Cache bust html files using `asset-cache-bust *.html` for example > type `asset-cache-bust --help` for help and options * Install this package locally: 1. Install this module using `npm install asset-cache-bust` 2. Create an npm script in your `package.json` file with a fitting name and corresponding value. e.g. `"bust-cache": "asset-cache-bust *.html"` 3. Run your npm script using `npm run <script name from above goes here>` > The default behaviour of the CLI is to replace the given HTML files with the cache > busted version. See the CLI help for more information and options. > If no matching tags were found and thus no replacements can be made, no files will be > changed. ## Contributing I will create a seperate markdown file with documentation for contribution if I get requests from people who would like to contribute. ## Licence MIT (See LICENCE file)