multicore-webpack takes advantage of the multiple cores in your computer's processor to get your bundles out as fast as possible by spinning up a child process for each webpack config you target, and kills them all if one fails.
Many webpack configs do so much file I/O and computationally intensive operations to build your bundles, but Node.js is not designed to take advantage of multicore processors.
usage: multicore-webpack NAME[,NAME...] ::: ARGS...
NAME The name argument of a webpack 3+ config.
ARGS The usual args you pass to webpack to build your config.
This can include the --config option as well, if you do not use
`webpack.config.js`.
webpack.config.js
module.exports = [ require('./a.webpack.js'), require('b.webpack.js') ];
a.webpack.js | b.webpack.js |
module.exports = {
name: 'alpha',
...config
};
|
module.exports = {
name: 'bravo',
...config
};
|
npm install -g multicore-webpack
multicore-webpack alpha,bravo ::: --env dev
- webpack >= 3.0.0
- Runs on basically any POSIX-compatible system (BSD, GNU, Linux, macOS).
- Windows, cygwin and MinGW are unsupported. (PRs accepted!)
- A C compiler: clang and gcc tested.
-
There's no speed improvement if you're only building a single webpack config.
-
Issues #3 applies if you are throwing more config targets than you have CPU cores.
-
There is a hard limit of 99 webpack config targets at the moment to safeguard against a fork bomb. This can be raised to 65536 as soon as #3 is resolved.
- Submit a PR ;)
- Target is C99; no features newer than C99 should berelied on, but it is recommended to compile targeting C11.
- CFLAGS include
-fstrict-aliasing
.