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.
Requirements¶
- Node.js v8.3+
- Yarn v1.2.1+, or npm v5.4+
- Neutrino v8
Installation¶
@neutrinojs/pwa
can be installed via the Yarn or npm clients.
Yarn¶
❯ yarn add @neutrinojs/pwa
npm¶
❯ npm install --save @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, { relativePaths: true, // 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', { relativePaths: true, // 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 when building:
❯ neutrino build --use @neutrinojs/react @neutrinojs/pwa
Example: Only use middleware during production:
module.exports = { env: { NODE_ENV: { production: { use: ['@neutrinojs/pwa'] } } } };
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:
Name | Description | Environments and Commands |
---|---|---|
pwa |
Creates an OfflinePlugin with options for setting up caching via Service Worker. |
all |
Contributing¶
This middleware is part of the neutrino-dev repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.