Skip to content

A webpack block that adds happypack support to your webpack config

License

Notifications You must be signed in to change notification settings

diegohaz/webpack-blocks-happypack

Repository files navigation

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

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

Table of Contents

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

About

A webpack block that adds happypack support to your webpack config

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published