Optimized and lightweight live reload library on 64kB, without dependencies on runtime version
- Runtime version with no dependencies
- Extremely lightweight - 64kB!
- Alternative to
browser-sync
andlivereload
- Excellent option to be used inside other libraries
- 100% tested and working on Linux, Mac and Windows!
This module is delivered as an ES Module:
- ES Module:
dist/liven.js
$ npm install @alumna/liven
import liven from '@alumna/liven';
const instance = await liven({
// (OPTIONAL)
// The current project's directory '.' will be used if `dir` isn't passed
dir: './public_html/',
// (OPTIONAL)
// Port to use on the http server
// If it isn't available, the first available port between 3000 and 3100 will be used
port: 3000,
// (OPTIONAL)
// Run as a SPA, mapping non-existent URL's to [base]index.html
// Default to "false"
spa: false,
// (OPTIONAL)
// Function (as string) to be runned on the browser when receiving a socket signal
// Defaults to: 'function( data ){ location.reload( true ) };', that simply reloads the page
// `data` is an object: { path, isDir, isFile, isNew, add_or_update }
script: 'function( data ){ location.reload( true ) };',
// (OPTIONAL)
// Mask paths to a different directory when requested
alias: {
'images' : 'optimized'
},
// (OPTIONAL)
// Function to be called on each event, before the refresh signal
// The function must return "true" to allow the refresh, of "false" to don't allow
on_event: ({ path, isDir, isFile, isNew, add_or_update }) => {...},
});
// You can programatically force a refresh as well
instance.refresh({ path, isDir, isFile, add_or_update, isNew })
// Create a memory-file on the server
// It overwrites the file on the same path, if it exists, on future requests
// -
// "content" can be a string or a buffer
// -
// Path must be a fullpath or initiate without a slash ('/') when relative
// Will generate a refresh unless "on_event" function returns "false" for the path
// -
// It will be instantly available in all modes, including:
// SPA, index.html served on dir URL's, updating 404 files, etc
await instance.memory( path, content )
// Clear a memory-file on the server
// -
// If a file exists on the same path on disk,
// its original content will be served again on future requests
// -
// As on 'memory' feature:
// Path must be a fullpath or initiate without a slash ('/') when relative
// Will generate a refresh unless "on_event" function returns "false" for the path
// -
// The effect will be instantly available in all modes
await instance.clear( path )
// And get the port used
console.log( instance.port ) // 3000