asset-versioning

0.0.3 • Public • Published

asset-versioning npm Version Build Status

Version your assets by appending a hash to the filename.

Usage

$ asset-versioning build 'css/**/*.css' 'js/**/*.js' --outputDirectory build | asset-versioning replace 'build/**/*'

Or, equivalently, using the API:

const assetVersioning = require('asset-versioning')
 
async function run () {
  const manifest = await assetVersioning.build(['css/**/*.css', 'js/**/*.js'], {
    outputDirectory: 'build'
  })
  assetVersioning.replace(['build/**/*'], manifest)
}
run()

CLI

Build

$ asset-versioning build --help

Usage: asset-versioning build [globs] [options]

Versions the files matched by globs. Writes a JSON object mapping
the original filenames to the versioned filenames to stdout.

Globs:
  One or more globs.

Options:
  -b, --baseDirectory BASE_DIRECTORY  Base directory to perform the
                                      globbing. Defaults to './'.
  -o, --outputDirectory OUTPUT_DIRECTORY  Directory to output the
                                          versioned files. Defaults
                                          to './build'.
  -h, --help  Print this message.

Example:
  asset-versioning build 'css/**/*.css' 'js/**/*.js' --outputDirectory build > manifest.json

Replace

$ asset-versioning replace --help

Usage: asset-versioning replace [globs] [options]

Replaces original filenames with their versioned filenames (as
specified in a manifest) in the files matched by globs. Ignores
binary files matched by the globs.

Globs:
  One or more globs.

Options:
  -b, --baseDirectory BASE_DIRECTORY  Base directory to perform the
                                      globbing. Defaults to './'.
  -m, --manifestFile MANIFEST_FILE  A JSON file mapping the original
                                    filenames to the versioned
                                    filenames. Read from stdin if
                                    this is not specified.
  -h, --help  Print this message.

Example:
  asset-versioning replace 'build/**/*' --manifestFile manifest.json

API

const assetVersioning = require('asset-versioning')

assetVersioning.build(globs [, options])

Versions the files matched by globs. Returns a Promise for an object mapping the original filenames to the versioned filenames.

  • globs is an array of one or more globs.

  • options is an object literal:

    Key Description Default
    baseDirectory Base directory to perform the globbing. process.cwd()
    outputDirectory Directory to output the versioned files. ./build

assetVersioning.replace(globs, manifest [, options])

Replaces original filenames with their versioned filenames (as specified in the manifest) in the files matched by globs. Ignores binary files matched by the globs.

  • globs is an array of one or more globs.

  • manifest is an object mapping the original filenames to the versioned filenames.

  • options is an object literal:

    Key Description Default
    baseDirectory Base directory to perform the globbing. process.cwd()

Installation

Install via yarn:

$ yarn add --dev asset-versioning

Or npm:

$ npm install --save-dev asset-versioning

License

MIT

Package Sidebar

Install

npm i asset-versioning

Weekly Downloads

0

Version

0.0.3

License

MIT

Unpacked Size

18.1 kB

Total Files

8

Last publish

Collaborators

  • yuanqing