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 v6 LTS, v8, v9
- 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.