Broccoli plugin to rewrite a source tree from an asset map.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
circle.yml
index.js
package.json

README.md

broccoli-asset-rewrite

CircleCI codecov.io npm

Broccoli plugin to rewrite a source node from an asset map.

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-rewrite --save-dev

Usage

The asset map should have keys of the original names and values of the new names.

var AssetRewrite = require('broccoli-asset-rewrite');

var generatedMap = {
  'assets/appname.css': 'assets/appname-d1d59e0fdcfc183415ab0b72a4f78d9c.css',
  'assets/appname.js': 'assets/appname-ed50537fcd5a71113cf79908f49e854d.js',
  'assets/vendor.css': 'assets/vendor-d41d8cd98f00b204e9800998ecf8427e.css',
  'logo.png': 'logo-c4ab8191636f0a520d1f7f7a82c455a3.png'
};

var assetNode = new AssetRewrite(node, {
  assetMap: generatedMap,
  replaceExtensions: ['html', 'js', 'css'],
  prepend: 'https://subdomain.cloudfront.net/'
});

Options

  • assetMap - Default: {} - The asset map to rewrite source from.
  • replaceExtensions - Default: ['html', 'css'] - 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/
  • ignore - Default: [] - Ignore files from being rewritten.
  • annotation - Default: null - A human-readable description for this plugin instance.

ghit.me