webpack-parallel-simple
v0.0.4
Published
Simple tool to parallelize build
Downloads
15
Readme
Simple lib for parallel Webpack builds
WARNING: the lib is not tested currently and may not be stable
Motivation
The existing library parallel-webpack is not maintained, has huge codebase, does not support custom communication between processes, does not show low-level errors, requires separate file with configs.
This one is a light alternative based on internal Node.js child_process fork
Usage
import { ChildProcess } from 'child_process';
import { run, TypeConfig } from 'webpack-parallel-simple';
let childProcesses: Array<ChildProcess> = [];
const parallelConfig: TypeConfig = {
onInit(processes: Array<ChildProcess>) { childProcesses = processes; },
bailOnError: false,
configPaths: [
path.resolve(__dirname, './client.config'),
path.resolve(__dirname, './server.config'),
],
afterFirstBuild() {
childProcesses.forEach((childProcess) => {
childProcess.send('SOME_MESSAGE');
});
// ... maybe start Node.js server, browser reload service, file generation service
},
execOnConfigRead: `require('@babel/register')({ extensions: ['.ts'] });`,
};
run(parallelConfig);
Params
bailOnError
- if true all processes will be terminated on the first error
configPaths
- array of config files' paths
afterFirstBuild
(optional) - callback that called after first compiler run on every config passed
execOnConfigRead
(optional) - some expression evaluated before config's read. Useful when you use
modern JS or TS syntax not understandable by used Node.js version
onInit
(optional) - passes instances of forked processes so you are able to send messages to your webpack processes and get answers