parcel-plugin-service-worker-manifest
v1.2.1
Published
A plugin that injects a manifest of all files generated by Parcel into JavaScript sources.
Downloads
9
Readme
Parcel Bundle Manifest Injector
A plugin that injects a manifest of all files generated by Parcel into JavaScript sources. It is intended for use by service workers; especially Workbox based ones.
This plugin only injects a manifest; it leaves the rest up to you.
Caveat: This plugin currently breaks source maps for files that are being injected into.
Usage
Add parcel-plugin-service-worker-manifest as a dependency to your project.
Reference
self.__precacheManifest
from within your service worker. For example, with Workbox:workbox.precaching.precacheAndRoute(self.__precacheManifest);
(Optional) If you're in TypeScript, add a reference to this module's ambient type declarations so you don't have red squiggles:
/// <reference path="../node_modules/parcel-plugin-service-worker-manifest/ambient.d.ts" />
Details
This plugin searches for all JavaScript files that include a reference to __precacheManifest
, and will the inject that (as a global variable) into the beginning of the file.
Note that it will always exclude source maps, and the file being injected into.
An example injected manifest:
this.__precacheManifest = [
{ url: '/index.html', revision: 'eec2934e19b3ee4edb0e5d75bcc24cfc' },
{ url: '/favicon-32x32.cd79125d.png', revision: '633cb020b11eaa924dd540cfcd79125d' },
{ url: '/vendor.2b3a1d76.js', revision: '8914e4ff066f36cfa8635a292b3a1d76' },
{ url: '/src.8eca73da.js', revision: '3e3f0ca26a367ad6188ed0e88eca73da' }
];
See Also
There are several other Parcel plugins that perform similar behavior:
- parcel-plugin-child-bundles-manifest: Generates a standalone json manifest that can be imported into service workers.
- parcel-plugin-sw-asset-urls: Replaces individual asset URLs within service worker looking files (sw.js, service-worker.js, serviceWorker.js).
- parcel-plugin-sw-cache: Runs workbox-build after each build.
- parcel-plugin-workbox-precache: Automatically injects and configures Workbox (imported via CDN) into your service worker.
- parcel-plugin-sw-precache: Generates an entire precaching service worker for you.
- parcel-plugin-sw-precache2: Like above, but with more options.
- parcel-plugin-precaching-sw: Another take on generating a precaching service worker.
- parcel-plugin-workbox: Uses Workbox to generate a basic precaching service worker.
- parcel-plugin-workbox2: Fork ove the above.