multicore-webpack

1.2.4 • Public • Published

multicore-webpack

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`.

Quickstart

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

Dependencies

  • 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.

Limitations

  • 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.

Contributing

  • 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.

Readme

Keywords

none

Package Sidebar

Install

npm i multicore-webpack

Weekly Downloads

0

Version

1.2.4

License

GPL-3.0

Unpacked Size

46.3 kB

Total Files

9

Last publish

Collaborators

  • gxg