inject-lr-script

2.2.0 • Public • Published

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.

Dependents (16)

Package Sidebar

Install

npm i inject-lr-script

Weekly Downloads

7,563

Version

2.2.0

License

MIT

Unpacked Size

5.85 kB

Total Files

4

Last publish

Collaborators

  • mattdesl