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 = 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.
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