8.3.0 • Published 5 years ago

@neutrinojs/pwa v8.3.0

Weekly downloads
8
License
MPL-2.0
Repository
github
Last release
5 years ago

Neutrino PWA Middleware

@neutrinojs/pwa is Neutrino middleware for augmenting a Neutrino web application with Progressive Web Application capabilities. This middleware is usually only added during production builds.

NPM version NPM downloads

Requirements

  • Node.js ^8.10 or 10+
  • Yarn v1.2.1+, or npm v5.4+
  • Neutrino 9
  • webpack 4

Installation

@neutrinojs/pwa can be installed via the Yarn or npm clients.

Yarn

❯ yarn add --dev @neutrinojs/pwa

npm

❯ npm install --save-dev @neutrinojs/pwa

Usage

@neutrinojs/pwa can be consumed from the Neutrino API, middleware, or presets. Require this package and plug it into Neutrino:

// Using function middleware format
const pwa = require('@neutrinojs/pwa');

// Use with default options
neutrino.use(pwa);

// Usage showing overriding options
neutrino.use(pwa, {
  ServiceWorker: {
    events: true
  },
  relativePaths: false,
  excludes: ['_redirects'],
  cacheMaps: [{ match: /.*/, to: '/', requestTypes: ['navigate'] }],
  publicPath: '/',
  // Override pluginId to add an additional pwa plugin instance
  pluginId: 'pwa'
});
// Using object or array middleware format

// Use with default options
module.exports = {
  use: ['@neutrinojs/pwa']
};

// Usage showing overriding options
module.exports = {
  use: [
    ['@neutrinojs/pwa', {
      ServiceWorker: {
        events: true
      },
      relativePaths: false,
      excludes: ['_redirects'],
      cacheMaps: [{ match: /.*/, to: '/', requestTypes: ['navigate'] }],
      publicPath: '/',
      // Override pluginId to add an additional pwa plugin instance
      pluginId: 'pwa'
    }]
  ]
};

The options passed to the PWA middleware are options accepted by OfflinePlugin. These are merged with the default values supplied by the PWA middleware using a deep object merge.

Environment

It is recommended to only use this middleware during building, or the production environment.

Example: Only use middleware during production:

module.exports = {
  use: [
    process.env.NODE_ENV === 'production' ? '@neutrinojs/pwa' : false,
  ]
};

Example: Only use middleware during production:

const pwa = require('@neutrinojs/pwa');

neutrino.config.when(process.env.NODE_ENV === 'production', () => {
  neutrino.use(pwa);
});

Customization

@neutrinojs/pwa creates some conventions to make overriding the configuration easier once you are ready to make changes.

Plugins

The following is a list of plugins and their identifiers which can be overridden:

NameDescriptionNODE_ENV
pwaCreates an OfflinePlugin with options for setting up caching via Service Worker.all

Contributing

This middleware is part of the neutrino repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.

9.0.0-rc.0

5 years ago

9.0.0-beta.1

6 years ago

9.0.0-beta.0

6 years ago

8.3.0

6 years ago

8.2.3

6 years ago

8.2.2

6 years ago

8.2.1

6 years ago

8.2.0

6 years ago

8.1.2

6 years ago

8.1.1

6 years ago

8.1.0

6 years ago

8.0.18

6 years ago

8.0.17

6 years ago

8.0.16

6 years ago

8.0.15

6 years ago

8.0.14

6 years ago

8.0.13

6 years ago

8.0.12

6 years ago

8.0.11

6 years ago

8.0.10

6 years ago

8.0.9

6 years ago

8.0.8

6 years ago

8.0.8-next.3

6 years ago

8.0.8-next.2

6 years ago

8.0.8-next.1

6 years ago

8.0.7

6 years ago

8.0.6

6 years ago

8.0.6-next.1

6 years ago

8.0.5

6 years ago

8.0.4

6 years ago

8.0.4-next.4

6 years ago

8.0.4-next.3

6 years ago

8.0.4-next.2

6 years ago

8.0.4-next.1

6 years ago

8.0.3

6 years ago

8.0.2

6 years ago

8.0.1

6 years ago

8.0.0

6 years ago

8.0.0-next.2

6 years ago

8.0.0-next.1

6 years ago

8.0.0-next.0

6 years ago