#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, pathToFile). If it is not afunction,customHashis used as the hash value. If it is set tonull, fingerprinting is skipped and only prepending occurs.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,
}
}ignore- Default:[]- An array of strings. If a filename contains any item in the ignore array, the contents of the file will not be processed for fingerprinting.
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.