0.0.3 • Published 6 years ago

asset-versioning v0.0.3

Weekly downloads
6
License
MIT
Repository
github
Last release
6 years ago

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:

    KeyDescriptionDefault
    baseDirectoryBase directory to perform the globbing.process.cwd()
    outputDirectoryDirectory 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:

    KeyDescriptionDefault
    baseDirectoryBase 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