Neutrino Loader Merge Middleware
@neutrinojs/loader-merge
is Neutrino middleware for easily performing a deep merge of options into
a named rule and named loader in a Neutrino configuration.
Requirements
- Node.js v6 LTS, v8, v9
- Yarn v1.2.1+, or npm v5.4+
- Neutrino v8
Installation
@neutrinojs/loader-merge
can be installed via the Yarn or npm clients.
Yarn
❯ yarn add @neutrinojs/loader-merge
npm
❯ npm install --save @neutrinojs/loader-merge
Usage
@neutrinojs/loader-merge
can be consumed from the Neutrino API, middleware, or presets. Require this package
and plug it into Neutrino:
// Using function middleware format
const loaderMerge = require('@neutrinojs/loader-merge');
neutrino.use(loaderMerge('compile', 'babel'), {
plugins: ['your-babel-plugin']
});
// Equivalent to:
neutrino.config.module
.rule('compile')
.use('babel')
.tap(options => require('deepmerge')(options, {
plugins: ['your-babel-plugin']
}));
This middleware is a factory intended to be invoked with a rule name and a loader name for which to extend the options.
Upon invoking, it will return a middleware function to be provided to Neutrino's use()
method. This middleware is
only useful to the function middleware format.
const middleware = loaderMerge(ruleName, loaderName);
neutrino.use(middleware, options);
Customization
@neutrinojs/loader-merge
does not create any of its own conventions; it is only middleware
for extending the options for a rule loader which has created its own conventions.
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.