Skip to content

acautin/digest-brunch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

digest-brunch NPM Version Build Status Dependency Status

A Brunch plugin that appends a unique SHA digest to asset filenames. Allows for far-future caching of assets.

Note: digest-brunch is not compatible with gzip-brunch.

Usage

npm install --save digest-brunch

Identify assets that you want to be digested with DIGEST(filename.ext), or a custom pattern of your choosing.

<!DOCTYPE html>
<html lang="en">
<head>
  <script src="DIGEST(test.js)"></script>
  <link rel="stylesheet" href="DIGEST(test.css)">
</head>
<body>
  <script src="DIGEST(js/nested.js)"></script>
</body>
</html>

Run brunch build --production and you'll see something like the following:

Note: digest-brunch can not be run in watch mode. It's only intended for production builds, run once.

<!DOCTYPE html>
<html lang="en">
<head>
  <script src="test-75570c26.js"></script>
  <link rel="stylesheet" href="test-e3eda643.css">
</head>
<body>
  <script src="js/nested-4df52a0a.js"></script>
</body>
</html>

The asset files are also renamed, inside the public folder, to match the names above.

Options

Optional You can override digest-brunch's default options by updating your config.coffee with overrides.

These are the default settings:

exports.config =
  # ...
  plugins:
    digest:
      # A RegExp where the first subgroup matches the filename to be replaced
      pattern: /DIGEST\(\/?([^\)]*)\)/g
      # After replacing the filename, should we discard the non-filename parts of the pattern?
      discardNonFilenamePatternParts: yes
      # RegExp that matches files that contain DIGEST references.
      referenceFiles: /\.html$/
      # How many digits of the SHA1 to append to digested files.
      precision: 8
      # Force digest-brunch to run in all environments when true.
      alwaysRun: false
      # Specify an array of environments to run in.
      environments: ['production']
      # Prepend an asset host URL to the file paths in the reference files. Use an object e.g. {production: 'http://production-asset-host.co'}
      prependHost: null
      # Output filename for a JSON manifest of reference file paths and their digest.
      manifest: ''
      # An array of infixes for alternate versions of files. This is useful when e.g. using retina.js (http://imulus.github.io/retinajs/) (@2x) for high density images.
      infixes: []

Contributing

  1. Add some code
  2. Add some tests
  3. Run npm test
  4. Send a pull request

License

MIT

About

A Brunch plugin that appends a unique SHA digest to asset filenames.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CoffeeScript 100.0%