2.0.1 • Published 3 months ago

hexo-workbox-build v2.0.1

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
3 months ago

hexo-workbox-build

GitHub Tag GitHub Release GitHub commits since latest release GitHub top language Coverage Status CI Libraries.io dependency status for GitHub repo

A hexo plugin to run workbox-build and provide convenient features of PWA and service worker.

Feature

  • run workbox-build via passing through your custom options. (generateSW mode or injectManifest mode)
  • generate the script which using to register service-worker.
  • reference the register script into html.
  • copy manifest.json from custom path to public\.
  • reference the manifest.json via <link> tag in html.

This plugin doesn't provide PWA support ready out of the box.

You need to know how to use workbox-build, configurate workbox strategy and custom your manifest.json.

Install

NPM Version node-lts NPM License NPM Downloads NPM Downloads Libraries.io dependency status for latest release

pnpm add hexo-workbox-build

# npm i hexo-workbox-build

Configuration

Default Configuration

hexo_workbox_build:
  enable: false

  WB_runWorkboxBuild: true
  WB_swDest: ""
  WB_generateSWOptionsPath: ""
  WB_injectManifestOptionsPath: ""

  REG_generateRegister: true
  REG_registerScriptDest: "registerSW.js"
  # REG_registerScriptNjkPath: "" # default to internal nunjucks template

  REG_injector: true
  REG_injectorNjkString: '<script defer src="{{ REG_registerScriptDest }}"></script>'

  MF_copyManifestJsonSrc: ""
  MF_copyManifestJsonDest: ""

  MF_injector: false
  MF_injectorNjkString: '<link rel="manifest" href="{{ MF_cpoyManifestJsonDest }}" />'

Example Configuration

hexo_workbox_build:
  enable: true

  WB_runWorkboxBuild: true
  WB_swDest: "sw.js"
  WB_generateSWOptionsPath: "workbox/genSWOption.js"
  # WB_injectManifestOptionsPath: "workbox/injMfOption.js"

  REG_generateRegister: true
  # REG_registerScriptDest: 'registerSW.js'
  # REG_registerScriptNjkPath: "" # default to internal nunjucks template

  REG_injector: true
  # REG_injectorNjkString: '<script defer src="{{ REG_registerScriptDest }}"></script>'

  MF_copyManifestJsonSrc: "workbox/manifest.json"
  MF_copyManifestJsonDest: "manifest.json"

  MF_injector: false
  # MF_injectorNjkString: '<link rel="manifest" href="{{ MF_cpoyManifestJsonDest }}" />'

Options

enable or disable this plugin

option namevalue typedefault valuenote
enbalebooleanfalseControl whether to enable hexo-workbox-build.

ralated to workbox-build

option namevalue typedefault valuenote
WB_runWorkboxBuildbooleantrueControl whether to run worlbox-build.
WB_swDeststring""Specify the name and path of service-worker that worlbox-build generated. (relative to public dir). equal to the swDest option in worlbox-build.
WB_generateSWOptionsPathstring""Need WB_swDest setting.Specify the path of a js file. (relative to your hexo dir), which use default exports the arguments of generatesw-mode of worlbox-build.
WB_injectManifestOptionsPathstring""Need WB_swDest generatesw-mode setting.Specify the path of a js file. (relative to your hexo dir), which use default exports the arguments of injectmanifest-mode of worlbox-build

Note: injectmanifest-mode depend on a built sw.js.

It means you need to run generatesw-mode first in hexo-workbox-build.


ralated to register service worker

generate the code of registering service-worker

option namevalue typedefault valuenote
REG_generateRegisterbooleantrueControl whether to generater a javascript, which is use to register service-worker.
REG_registerScriptDeststringregisterSW.jsNeed WB_swDest.Specify the path of the above javascript code generated. (relative to public dir)
REG_registerScriptNjkPathstring""path of a nunjucks template of the javascript. (relative to your hexo dir)Default template: ./assets/registerScript.njk

insert the registering code into html

option namevalue typedefault valuenote
REG_injectorbooleantrueControl whether to Inject the above javascript code into html <script>. You can use REG_injectorNjkString to custom it.
REG_injectorNjkStringstring<script defer src="{{ REG_registerScriptDest }}"></script>Custom the <scripts> string.

related to manifest.json

copy your manifest.json into public

If set both MF_copyManifestJsonSrc and MF_copyManifestJsonDest, hexo-workbox-build will copy your manifest.json to public dir.

In fact, you can simply put your manifest.json in source/ dir without using this above feature.

option namevalue typedefault valuenote
MF_copyManifestJsonSrcstring""Specify the path of your manifest.json. (relative to your hexo dir)
MF_copyManifestJsonDeststring""Specify the destiny path of your manifest.json. (relative to public dir)

insert a <link> ref to your manifest.json

some themes likes next have the same feature, you may not to use this if you enable this feature in themes.

option namevalue typedefault valuenote
MF_injectorbooleanfalseneed MF_copyManifestJsonDest.control whether to Inject <link> tag into head of html.You can use MF_injectorNjkString option to custom it.
MF_injectorNjkStringstring<link rel="manifest" href="{{ MF_cpoyManifestJsonDest }}" />custom the <link> string.
2.0.1

3 months ago

2.0.0

3 months ago

2.0.0-0

3 months ago

1.1.1

3 months ago

1.1.0

3 months ago

1.0.4

6 months ago

1.0.3-0

7 months ago

1.0.3

7 months ago

1.0.2

10 months ago

1.0.1

10 months ago