inject-lr-script

inject live reload into HTML content

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
inject-lr-script
1192.2.05 years ago9 years agoMinified + gzip package size for inject-lr-script in KB

Readme

inject-lr-script
stable
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

NPM

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 35729
  • host the host, default localhost
  • path the script path, default '/livereload.js?snipver=1'
  • local if true, the script will ignore the port and host and assumes its hosted locally on the same domain, default false
  • type the script type, default "text/javascript", could also be "module" for ES modules
  • defer a boolean whether to add this attribute to the script tag, default true
  • async a boolean whether to add this attribute to the script tag, default true

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

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.