webpack-blocks-happypack

0.2.0 • Public • Published

webpack-blocks-happypack

Generated with nod NPM version Build Status Coverage Status

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.

Install

$ npm install --save-dev webpack-blocks-happypack

Usage

Basic

const { createConfig } = require('@webpack-blocks/webpack2')
const babel = require('@webpack-blocks/babel6')
const cssModules = require('@webpack-blocks/css-modules')
const extractText = require('@webpack-blocks/extract-text2')
const happypack = require('webpack-blocks-happypack')
 
const config = createConfig([
  cssModules(),
  happypack([
    // these will be happypack'd
    extractText(),
    babel(),
  ]),
])

Configuration

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
  }),
])

Environment variables

$ 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 

How it does

This webpack block adds HappyPack plugins with proper IDs and replaces loaders by happypack/loader?id=${id}.

API

happypack

Parameters

  • blocks Array<WebpackBlock>
  • $1 any (optional, default {})
    • $1.loaders (optional, default ['babel-loader','css-loader'])
    • $1.happypackOptions ...any

Returns Array<Block>

Loader

Type: string

Rule

Type: {test: RegExp, loader: (Loader | Array<Loader>)?, loaders: (Loader | Array<Loader>)?, use: (Loader | Array<Loader>)?, options: Object?}

Properties

Block

Type: {plugins: Array<any>?, module: {loaders: Array<Rule>?, rules: Array<Rule>?}}

Properties

BlockOptions

Type: {loaders: Array<string>?, refresh: boolean?, cache: any?, cacheContext: {}?}

Properties

WebpackBlock

Type: function (context: any, utils: any): function (prevCongig: any): Block

Other useful webpack blocks

License

MIT © Diego Haz

Package Sidebar

Install

npm i webpack-blocks-happypack

Weekly Downloads

44

Version

0.2.0

License

MIT

Last publish

Collaborators

  • diegohaz