inject-lr-script
v2.2.0
Published
inject live reload into HTML content
Downloads
45,738
Maintainers
Readme
inject-lr-script
Inject the LiveReload script snippet into a HTML response.
This detects .htm
and .html
and ensures they have text/html
accept headers, if not yet set.
Example:
var liveReload = require('inject-lr-script')
var stacked = require('stacked')
var http = require('http')
var serveStatic = require('serve-static')
var app = stacked()
app.use(liveReload())
app.use(serveStatic('app/'))
var server = http.createServer(app)
Note: This expects a <body>
tag to be present in the HTML.
Usage
middleware = liveReload([opt])
Returns a function middleware(req, res, next)
which injects a LiveReload <script>
tag into the body of an HTML script.
Options:
port
the live reload server port, default 35729host
the host, defaultlocalhost
path
the script path, default'/livereload.js?snipver=1'
local
if true, the script will ignore theport
andhost
and assumes its hosted locally on the same domain, default falsetype
the script type, default"text/javascript"
, could also be"module"
for ES modulesdefer
a boolean whether to add this attribute to the script tag, defaulttrue
async
a boolean whether to add this attribute to the script tag, defaulttrue
You can also change the options at runtime:
var liveReload = require('inject-lr-script')
var liveInjector = liveReload()
handler.use(function (req, res, next) {
if (liveReload) {
liveInjector.host = myHost
liveInjector.port = myPort
liveInjector(req, res, next)
} else {
next()
}
})
See Also
- inject-lr-script-stream - a simpler, streaming approach
- connect-livereload - a similar approach
Changelog
- 2.x - major refactor: simplified and uses a connect-style middleware to improve performance/stability
- 1.x - uses Beefy to try and auto-detect mime type based on response events
License
MIT, see LICENSE.md for details.