Rollup plugin to compose bundle output filenames with unique hashes, to facilitate long-term caching of your static resources.
It uses is simple placeholder pattern to substitue filename with bundle hash. I.e.
main.[hash].js
becomes:
main.07d2bf0d12655d9f51c0637718da4889.js
via npm:
npm install --save-dev rollup-plugin-hash
via yarn:
yarn add --dev rollup-plugin-hash
import { rollup } from 'rollup';
import hash from 'rollup-plugin-hash';
rollup({
entry: 'main.js',
plugins: [
hash({
dest: 'main.[hash].js'
})
]
});
Type: string
Required: true
The template of your filename destination. Must include the placeholder [hash]
to be replaced.
Type: boolean
Default: false
Required: false
Whether the hashed version should replace the main output file generated by Rollup. Useful in CI environments where you don't need any non-hashed assets.
Type: string
Default: sha1
Required: true
Hashing algorithm used to generate hash. Can be one of md5
, sha1
, sha256
, sha512
Type: string
Required: false
Filename to write a manifest to. Will generate a JSON manifest mapping input filename to hashed output filename. Useful if you want to dynamically generate link to your hashed output server-side.
Example manifest:
{
"main.js": "main.56770a64be1a1132502b276c4132a76bb94d9e1b.js"
}
Type: string
Default: bundle.dest
Required: false
The filename used as the input key in the generated manifest map.
Useful in certain build setups where path.resolve
is needed as bundle.dest
but not in the manifest.
MIT ©