manifest-rev
Dynamically load assets into your views, emails, etc. from your
rev-manifest.json
manifest revision file (e.g.<script src="{{ manifest('foo.js'); }}"></script>
would return<script src="/foo-0775041dd4.js"></script>
when rendered).
Table of Contents
Install
npm:
npm install manifest-rev
yarn:
yarn add manifest-rev
Usage
const path = ; const Koa = ;const manifestRev = ; const app = ; app; // ...
-
Call the
manifest(str, ?prop)
helper function in your views when you need to include assets (requires a templating engine).pug:
htmlheadtitle Foobodyh1 Fooscript(src=manifest('foo.js', 'path'))FooFoonunjucks (via koa-nunjucks-promise):
FooFoo
API
-
manifestRev(options)
- accepts a requiredoptions
argument for setup. Returns middleware for use inapp.use
statement (which in turn binds toctx.state
a helper function calledmanifest
). Here are the properties accepts in theoptions
argument.manifest
(required) - path to a validrev-manifest.json
file (e.g. as built by gulp-rev or gulp-rev-all)prepend
(optional) - string to prepend before file paths rendered after lookup (e.g. if you type{{ manifest('foo.js'); }}
in your view, and you have passedprepend: '/dist/'
in your setup, then your tag would render as<script src="/dist/foo-0775041dd4.js"></script>
(defaults to/
)
-
manifest(str)
- the helper function returned whenmanifestRev
is invoked in your app. Returns the string found from a lookup in yourrev-manifest.json
file for thestr
argument passed (e.g. if you type{{ manifest('foo.js'); }}
in your view, then it returns for the value of thefoo.js
property as defined in yourmanifest
file, such asfoo-0775041dd4.js
). If the found is not found, then the inputstr
argument is returned.
Breaking changes in 2.0
manifest(str)
is nowmanifest(str, prop)
which now accepts a following property within yourrev-manifest.json
file.prop
is optional and defaults to the path of the rev'd file. For example if you type{{ manifest('foo.js', 'integrity'); }}
in your view, then it returns for the value of thefoo.js
fileintegrity
property as defined in yourmanifest
file, such assha256-YEWYfCFP9yc5DAF8K5AtLEyFuKZ1MNw+xQPm8g70LYY=
). If the found is not found, then the inputstr
argument is returned.
Contributors
Name | Website |
---|---|
Nick Baugh | http://niftylettuce.com/ |