rev-web-assets
Version:
Revision web asset filenames with cache busting content hash fingerprints
52 lines (47 loc) • 1.61 kB
JavaScript
////////////////////
// rev-web-assets //
// MIT License //
////////////////////
// Usage in package.json:
// "scripts": {
// "rev": "rev-web-assets build dist"
// },
//
// Usage from command line:
// $ npm install --save-dev rev-web-assets
// $ rev-web-assets build/web-app dist/web-app
//
// Contributors to this project:
// $ cd rev-web-assets
// $ npm install
// $ npm test
// $ node bin/cli.js --cd=spec/fixtures source target --meta-content-base=https://example.net
// Imports
import { cliArgvUtil } from 'cli-argv-util';
import { revWebAssets } from '../dist/rev-web-assets.js';
// Parameters and flags
const validFlags =
['cd', 'force', 'manifest', 'meta-content-base', 'note', 'quiet', 'skip', 'summary'];
const cli = cliArgvUtil.parse(validFlags);
const source = cli.params[0];
const target = cli.params[1];
// Revision Web Assets
const error =
cli.invalidFlag ? cli.invalidFlagMsg :
!source ? 'Missing source folder.' :
!target ? 'Missing target folder.' :
cli.paramsCount > 2 ? 'Extraneous parameter: ' + cli.params[2] :
null;
if (error)
throw new Error('[rev-web-assets] ' + error);
const options = {
cd: cli.flagMap.cd ?? null,
force: cli.flagOn.force,
metaContentBase: cli.flagMap.metaContentBase ?? null,
saveManifest: cli.flagOn.manifest,
skip: cli.flagMap.skip ?? null,
};
const results = revWebAssets.revision(source, target, options);
if (!cli.flagOn.quiet)
revWebAssets.reporter(results, { summaryOnly: cli.flagOn.summary });