asset-versioning
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 = { const manifest = await assetVersioning assetVersioning}
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 =
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