A webpack block that adds happypack support to your webpack config.
This package is based on the PR by @fenos on the official webpack-blocks repository.
$ npm install --save-dev webpack-blocks-happypack
const { createConfig, babel, css, extractText } = require('webpack-blocks')
const happypack = require('webpack-blocks-happypack')
const config = createConfig([
css.modules(),
happypack([
// these will be happypack'd
extractText(),
babel(),
]),
])
const config = createConfig([
happypack([
babel(),
], {
// default options
loaders: ['babel-loader', 'css-loader'], // allowed loaders
cache: !process.env.DISABLE_HAPPY_CACHE,
cacheContext: {
env: process.env.NODE_ENV,
refresh: process.env.REFRESH_HAPPY_CACHE ? Math.random() : 0,
// ... add or override happypack cacheContext options
},
// ... add or override happypack options
}),
])
$ DISABLE_HAPPY=true webpack # turns happypack off and run webpack
$ DISABLE_HAPPY_CACHE=true webpack # turns happypack cache off and run webpack
$ REFRESH_HAPPY_CACHE=true webpack # refreshes happypack cache and run webpack
This webpack block adds HappyPack
plugins with proper IDs and replaces loaders by happypack/loader?id=${id}
.
Parameters
blocks
Array<WebpackBlock>$1
any (optional, default{}
)$1.loaders
(optional, default['babel-loader','css-loader']
)$1.happypackOptions
...any
Type: string
Type: {test: RegExp, loader: (Loader | Array<Loader>)?, loaders: (Loader | Array<Loader>)?, use: (Loader | Array<Loader>)?, options: Object?}
Properties
test
RegExploader
(Loader | Array<Loader>)?loaders
(Loader | Array<Loader>)?use
(Loader | Array<Loader>)?options
Object?
Type: {plugins: Array<any>?, module: {loaders: Array<Rule>?, rules: Array<Rule>?}}
Properties
plugins
Array<any>?module
{loaders: Array<Rule>?, rules: Array<Rule>?}module.loaders
Array<Rule>?module.rules
Array<Rule>?
Type: {loaders: Array<string>?, refresh: boolean?, cache: any?, cacheContext: {}?}
Properties
Type: function (context: any, utils: any): function (prevCongig: any): Block
MIT © Diego Haz