#broccoli-asset-rev
Broccoli plugin to add fingerprint checksums to your files and update the source to reflect the new filenames.
Turns
<script src="assets/appname.js">
background: url('/images/foo.png');
Into
<script src="https://subdomain.cloudfront.net/assets/appname-342b0f87ea609e6d349c7925d86bd597.js">
background: url('https://subdomain.cloudfront.net/images/foo-735d6c098496507e26bb40ecc8c1394d.png');
npm install broccoli-asset-rev --save-devvar assetRev = require('broccoli-asset-rev');
var assetTree = assetRev(tree, {
extensions: ['js', 'css', 'png', 'jpg', 'gif'],
exclude: ['fonts/169929'],
replaceExtensions: ['html', 'js', 'css'],
prepend: 'https://subdomain.cloudfront.net/'
});extensions- Default:['js', 'css', 'png', 'jpg', 'gif', 'map']- The file types to add md5 checksums.exclude- Default:[]- An array of strings. If a filename contains any item in the exclude array, it will not be fingerprinted.replaceExtensions- Default:['html', 'css', 'js']- The file types to replace source code with new checksum file names.prepend- Default:''- A string to prepend to all of the assets. Useful for CDN urls likehttps://subdomain.cloudfront.net/generateRailsManifest- Default: none - If true, will generate amanifest.jsonto be used by Sprockets for the Rails Asset Pipeline. The manifest will be fingerprinted by default but this can be avoided by adding'manifest.json'to theexcludelist.customHash- Default: none - If set, overrides the md5 checksum calculation with the result of callingcustomHash(buffer). If it is not afunction,customHashis used as the hash value.generateAssetMap- Default: false. If true, will generate aassetMap.jsonfile in aassetsdirectory on the output tree. This file contains a mapping of the original asset name to the fingerprinted asset, like the following:
{
assets: {
css/file1.css: css/file1-sdaa7d6a87d6ada78ds.css,
images/image1.png: images/image1-sdaa7d6a87d6ada78ds.css,
}
}var app = new EmberApp({
fingerprint: {
exclude: ['fonts/169929'],
prepend: 'https://sudomain.cloudfront.net/'
}
});enabled- Default:app.env === 'production'- Boolean. Enables fingerprinting if true. True by default if current environment is production.exclude- Default:[]- An array of strings. If a filename contains any item in the exclude array, it will not be fingerprinted.extensions- Default:['js', 'css', 'png', 'jpg', 'gif', 'map']- The file types to add md5 checksums.prepend- Default:''- A string to prepend to all of the assets. Useful for CDN urls likehttps://subdomain.cloudfront.net/replaceExtensions- Default:['html', 'css', 'js']- The file types to replace source code with new checksum file names.