npm install runner-generator-webpack
Add to the scope:
const generator = require('runner-generator-webpack');
Generate tasks according to the given config:
const tasks = generator(webpack => {
return {
mode: 'development',
entry: 'src/js/main.js',
output: {
filename: 'develop.js',
path: path.resolve('build')
},
devtool: 'source-map',
plugins: [
new webpack.optimize.OccurrenceOrderPlugin()
],
hooks: {
done: {
// according to https://webpack.js.org/api/compiler-hooks/
// each hook must pass a class name of https://github.com/webpack/tapable
class: 'AsyncSeriesHook',
callbacks: [
function ( stats) {
console.log(stats);
}
]
},
compile: {
class: 'SyncHook',
callbacks: [
function ( compilationParams ) {
console.log(compilationParams);
}
]
}
}
};
});
Add generated tasks to the runner
instance:
const runner = require('runner');
Object.assign(runner.tasks, tasks);
The following tasks will become available:
Task name | Description |
---|---|
webpack:config |
prints the current configuration used for generated tasks |
webpack:build |
performs webpack compilation |
webpack:modules |
prints detailed info on files used in the latest compilation |
webpack:clear |
removes compiled file (source map as well) |
webpack:watch |
starts file changes monitoring and rebuilds when necessary |
webpack:unwatch |
stops monitoring |
Generator accepts two arguments: base configuration and additional options.
It's a Webpack config passed to the compiller instance.
It's an object with the following properties:
Name | Description |
---|---|
prefix | an affix placed before a task name (default is webpack: ) |
suffix | a string added at the end of a task name (empty by default) |
So it's possible to change generated tasks names:
Object.assign(runner.tasks,
generator(config, {
prefix: 'js:',
suffix: ':develop'
})
);
It will add the following tasks:
js:config:develop
js:build:develop
js:modules:develop
js:clear:develop
js:watch:develop
js:unwatch:develop
If you have any problems or suggestions please open an issue according to the contribution rules.
runner-generator-webpack
is released under the GPL-3.0 License.