webpack-livereload-plugin
LiveReload when running webpack --watch
Installation
Install the package
npm install --save-dev webpack-livereload-plugin
Add the plugin to your webpack config
// webpack.config.js
var LiveReloadPlugin = require('webpack-livereload-plugin');
module.exports = {
plugins: [
new LiveReloadPlugin(options)
]
}
Add a script tag to your page pointed at the livereload server
<script src="http://localhost:35729/livereload.js"></script>
Options
protocol
- (Default: protocol of the page, either http
or https
) Protocol for livereload <script>
src attribute value
port
- (Default: 35729) The desired port for the livereload server. If you define port 0, an available port will be searched for, starting from 35729.
hostname
- (Default: hostname of the page, like localhost
or 10.0.2.2
) The desired hostname for the appended
<script>
(if present) to point to
appendScriptTag
- (Default: false) Append livereload <script>
automatically to <head>
.
ignore
- (Default: null
) RegExp of files to ignore. Null value means
ignore nothing. It is also possible to define an array and use multiple anymatch patterns.
delay
- (Default: 0
) amount of milliseconds by which to delay the live reload (in case build takes longer)
useSourceHash
- (Default: false
) create hash for each file source and only notify livereload if hash has changed
useSourceSize
- (Default: false
) check size for each file source and only notify livereload if size has changed (Faster than useSourceHash
but it has a downside. If file size hasn't changed no reload is triggered. For example if color has changed from #000000
to #ffffff
no reload will be triggered!)
Why?
Yes, there's already webpack-dev-server
that handles live reloading
and more complex scenarios. This project aims to solve the case where
you want assets served by your app server, but still want reloads
triggered from webpack's build pipeline.
HTTPS
If you set key
, cert
, or pfx
options, they'll get passed through to
tiny-lr as options and it will
serve over HTTPS. You'll also also set protocol
to https
.
FAQ
Webpack always generates js and css together
If your webpack is always generating js and css files together you could set
useSourceHash
to true
to generate a hash for each changed asset and it
should prevent multiple reloads.
Alternatively if this slows your build process you could set liveCSS
and liveImg
to false
to prevent multiple reloads.