matthijsl / elm-hot-webpack-loader

Webpack loader providing hot code swapping for Elm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI

elm-hot-webpack-loader

Hot code swapping support for Elm 0.19. This improves the Elm development workflow by automatically reloading your code in the browser after a change, while preserving your current app state.

This package provides a Webpack loader that can be used in conjunction with elm-webpack-loader. If you're looking for something that doesn't require Webpack, see elm-hot (although integrating it will be much more work).

Changelog

1.0.2

  • upgrade elm-hot to 1.0.1 (various bug fixes)

1.0.1

  • upgrade elm-hot to 1.0.0 (various bug fixes)

1.0.0

  • use official elm-webpack-loader 5.0.0

0.9.2

  • first release as a separate repo & package

0.9.0

  • originally shipped as part of elm-hot

Installation

$ npm install --save-dev elm-hot-webpack-loader

You will also need to install elm-webpack-loader, if you haven't already.

Usage

Assuming that you're already using elm-webpack-loader, just add { loader: 'elm-hot-webpack-loader' } immediately before elm-webpack-loader in the use array.

It should look something like this:

module.exports = {
    module: {
        rules: [
            {
                test: /\.elm$/,
                exclude: [/elm-stuff/, /node_modules/],

                use: [
                    { loader: 'elm-hot-webpack-loader' },
                    {
                        loader: 'elm-webpack-loader',
                        options: {
                            cwd: __dirname
                        }
                    }
                ]
            }
        ]
    }
}

It's important that the elm-hot-webpack-loader loader comes before the elm-webpack-loader in the use array.

When running webpack-dev-server, you must add the --hot flag.

Example

Check out the example app.


Caveats

Attribution

Elm hot code swapping is based on the work of Flux Xu's elm-hot-loader. That project is no longer maintained, and it does not support Elm 0.19.

About

Webpack loader providing hot code swapping for Elm

License:MIT License


Languages

Language:JavaScript 86.7%Language:Elm 10.7%Language:HTML 2.6%