This repository was archived by the owner on Feb 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 213
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lazily require() webpack plugins to improve performance (#1101)
webpack-chain 4.11.0's `.plugin('abc').use(...)` now supports being passed the path to a plugin, instead of the plugin itself. See: neutrinojs/webpack-chain#102 This means we can avoid the expensive `require()` of plugins in cases where the plugin isn't used - such as when: * running ESLint's CLI with a Neutrino-generated `.eslintrc.js` * running tests with Jest/Mocha (which don't perform a webpack build) * the plugin isn't needed for that `NODE_ENV` (eg `clean-webpack-plugin` isn't used in development). For example, this reduces `time node .eslintrc.js` for a React+AirBnb project from 1700ms to 370ms - and for projects that use more of the non-default core Neutrino presets, the improvement will be even more noticeable. As an added bonus, plugins specified by path also have their `require()` statement generated automatically when using `toString()`, meaning that the configuration output by `--inspect` no longer needs any adjustments before it can be run. ie this "just works" with the core presets: ``` $ echo "module.exports = $(yarn neutrino --inspect --mode production);" > exported-config.js $ yarn webpack --config exported-config.js ``` The webpack-chain docs have also been synced with those from upstream. Refs #239.
- Loading branch information
Showing
16 changed files
with
138 additions
and
110 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.