vb-pwa

Injects a workbox pre-cache manifest of PWA-enabled web applications into the service worker script. (See the Chrome developer's workbox API doc for details.)

Manifest entries:

  • application assets (build/processed|optimized/webApps/<appId>/**)
  • services/catalog.json (this is created during application deployment. It is not generated by the build)
  • JET dependencies
  • JET persistence toolkit dependencies
  • Visual Runtime dependencies
  • Telemetry
  • Workbox dependencies
  • Imported stylesheets and their dependencies (fonts, images)

User may customize the behavior by adding a custom workbox config file into application sources root. The format of the config can be either a JSON file or JavaScript module:

  • vb-workbox-config.json
  • vb-workbox-config.js

There are two options when using a JavaScript module. The module can either export an object as the config, or it can expose a function that returns a config object.

In the case of exporting an object, the following context is passed into it as an argument and can be used to generate the config object:

{
  sources: {
    root, // path to the root of GIT sources
    application, // path to the web application in GIT sources
  },
  builtAssets: {
    root, // path to root of the build application assets (build/processed|optimized)
    application, // path to application built assets build/processed|optimized/webApps/foo
  },
  jetUrl, // JET URL
  visualBuilderUrl, // VB URL
}

The following example shows how to override the workbox config generated by the build, so the pre-cache manifest is injected into a custom file (precacheManifest.json). Please note the file has to exist in the sources. The custom config also adds a custom manifest entry for JET's oj-redwood-min.css stylesheet.

Example of custom workbox config

module.exports = (ctx) => {
  return {
    "swSrc": `${ctx.sources.root}/precacheManifest.js`,
    "swDest": `${ctx.builtAssets.application}/precacheManifest.js`,
    "additionalManifestEntries": [
      {
        "url": `${ctx.jetUrl}/default/css/redwood/oj-redwood-min.css`,
        "revision": null
      }
    ]
  }
}

The complete list of workbox configuration options is here: https://developers.google.com/web/tools/workbox/reference-docs/latest/module-workbox-build

Details

Detail Description
subtasks n/a
multitasks n/a
hooks n/a
input build/processed|optimized
output build/processed|optimized

Build Options

Name Mandatory Default Value Description
target n/a build Name of build directory
git-sources n/a check Location of sources of the visual application