2.2.0 • Published 6 years ago
inject-lr-script v2.2.0
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:
portthe live reload server port, default 35729hostthe host, defaultlocalhostpaththe script path, default'/livereload.js?snipver=1'localif true, the script will ignore theportandhostand assumes its hosted locally on the same domain, default falsetypethe script type, default"text/javascript", could also be"module"for ES modulesdefera boolean whether to add this attribute to the script tag, defaulttrueasynca 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.
