broccoli-asset-rev

Broccoli plugin to add fingerprint checksums and CDN URLs to your assets

  • Owner: ember-cli/broccoli-asset-rev
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

broccoli-asset-rev

Build Status
codecov.io
npm

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');

Installation

npm install broccoli-asset-rev --save-dev

Usage

var AssetRev = require('broccoli-asset-rev');

var assetNode = new AssetRev(node, {
  extensions: ['js', 'css', 'png', 'jpg', 'gif'],
  exclude: ['fonts/169929'],
  replaceExtensions: ['html', 'js', 'css'],
  prepend: 'https://subdomain.cloudfront.net/'
});

Options

  • extensions - Default: ['js', 'css', 'png', 'jpg', 'gif', 'map'] - The file types to add md5 checksums.
  • exclude - Default: [] - An array of globs. 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 like https://subdomain.cloudfront.net/
  • generateRailsManifest - Default: none - If true, will generate a manifest.json to 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 the exclude list.
  • railsManifestPath - Default: 'assets/manifest-HASH.json' - The path in the destination folder to store the Rails manifest. Only for the default value, HASH will be replace with the fingerprint of the file.
  • customHash - Default: none - If set, overrides the md5 checksum calculation with the result of calling customHash(buffer, pathToFile). If it is not a function, customHash is used as the hash value. If it is set to null, fingerprinting is skipped and only prepending occurs.
  • generateAssetMap - Default: false. If true, will generate a assetMap.json file in a assets directory on the output node. This file contains a mapping of the original asset name to the fingerprinted asset, like the following:
  • assetMapPath - Default: 'assets/assetMap-HASH.json' - The path in the destination folder to store the assetMap.json in. Only for the default value, HASH will be replace with the fingerprint of the file.
{
	assets: {
		css/file1.css: css/file1-sdaa7d6a87d6ada78ds.css,
		images/image1.png: images/image1-sdaa7d6a87d6ada78ds.css,
	}
}
  • fingerprintAssetMap - Default: false. If true, will fingerprint assetMap.json.
  • 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.
  • annotation - Default: null. A human-readable description for this plugin instance.

Default settings

The default settings are available if needed in your application or addon via:
var broccoliAssetRevDefaults = require( 'broccoli-asset-rev/lib/default-options' );

Ember CLI addon usage

var app = new EmberApp({
  fingerprint: {
    exclude: ['fonts/169929'],
    prepend: 'https://sudomain.cloudfront.net/'
  }
});

Ember CLI addon options

  • enabled - Default: app.env === 'production' - Boolean. Enables fingerprinting if true. True by default if current environment is production.
  • exclude - Default: [] - An array of globs. 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 like https://subdomain.cloudfront.net/
  • replaceExtensions - Default: ['html', 'css', 'js'] - The file types to replace source code with new checksum file names.

ghit.me

Main metrics

Overview
Name With Ownerember-cli/broccoli-asset-rev
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2014-05-25 08:04:46
Pushed At2022-05-05 12:41:12
Last Commit At2020-11-03 13:28:16
Release Count2
Last Release Namev2.7.0 (Posted on 2018-03-29 10:54:55)
First Release Namev2.6.0 (Posted on 2017-08-14 13:54:07)
用户参与
Stargazers Count86
Watchers Count8
Fork Count82
Commits Count185
Has Issues Enabled
Issues Count69
Issue Open Count29
Pull Requests Count54
Pull Requests Open Count7
Pull Requests Close Count19
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private