Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
elm-hot-webpack-loader
✓ use: [{ loader: 'elm-hot-webpack-loader' }, { loader: 'elm-webpack-loader' }]
✗ use: [{ loader: 'elm-webpack-loader' }, { loader: 'elm-hot-webpack-loader' }]
Order matters: elm-hot-loader must come before elm-webpack-loader in the use array.
elm-hot (runtime)
✓ No explicit import; loader injects HMR code automatically.
✗ npm install elm-hot and import it manually
elm-hot is a transitive dependency; do not install or import it directly.
Webpack HotModuleReplacementPlugin
✓ devServer: { hot: true } or --hot flag
✗ Explicitly requiring webpack.HotModuleReplacementPlugin
In webpack-dev-server v4+, hot is enabled by default; older versions may need the --hot flag.
Demonstrates correct Webpack configuration using elm-hot-webpack-loader before elm-webpack-loader, with hot module replacement enabled in devServer.
// webpack.config.js
module.exports = {
mode: 'development',
module: {
rules: [
{
test: /\.elm$/,
exclude: [/elm-stuff/, /node_modules/],
use: [
{ loader: 'elm-hot-webpack-loader' },
{
loader: 'elm-webpack-loader',
options: {
cwd: __dirname
}
}
]
}
]
},
devServer: {
static: './dist',
hot: true
}
};
// Main.elm (basic Elm app)
module Main exposing (main)
import Browser
main = Browser.sandbox { init = 0, update = \\_ model -> model, view = \\_ -> Html.text "Hello" }
Errors
Common errors & fixes
Module not found: Error: Can't resolve 'elm-hot-webpack-loader'
The package is not installed or not in node_modules.
fixnpm install --save-dev elm-hot-webpack-loader
Error: You must run webpack-dev-server with --hot flag
Hot module replacement is not enabled.
fixAdd --hot to webpack-dev-server command or set devServer.hot: true in webpack config.
Uncaught TypeError: Cannot read properties of null (reading 'register')
elm-hot-webpack-loader must be placed before elm-webpack-loader in the webpack config.
fixSwap the loader order so that elm-hot-webpack-loader is first.
Audit
Dependencies
elm-webpack-loaderrequiredPeer dependency required to compile Elm code; elm-hot-webpack-loader only handles hot reloading, not compilation.