Skip to content

runner/generator-webpack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tasks generator for Webpack

build status npm version dependencies status devDependencies status Gitter RunKit

Installation

npm install runner-generator-webpack

Usage

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.

Base configuration

It's a Webpack config passed to the compiller instance.

Additional options

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

Contribution

If you have any problems or suggestions please open an issue according to the contribution rules.

License

runner-generator-webpack is released under the GPL-3.0 License.

About

Tasks generator for Webpack.

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •