1.0.0 • Published 4 years ago

rollup-plugin-livereload-universal v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Universal Rollup LiveReload Plugin

This plugin allows manually triggering reload of the user's page via LiveReload WS connection. This plugin was conceived as a supplement for rollup-plugin-memory-fs, since it is the only way to provide live reloading while using that plugin. However, as the name implies, it's universal.

This plugin is heavily inspired by and partly taken from rollup-plugin-livereload, so big kudos to Thomas Ghysels for that plugin. If you're not using rollup-plugin-memory-fs, there's a high probability his plugin will work for you just fine.

Installation

# yarn
yarn add -D rollup-plugin-livereload-universal

# npm
npm install --save-dev rollup-plugin-livereload-universal

Usage

// rollup.config.js
import serve from 'rollup-plugin-serve';
import memfs from 'rollup-plugin-memory-fs'
import livereload from 'rollup-plugin-livereload-universal'

const memfsPlugin = memfs();
const livereloadPlugin = livereload({ reloadEmitter: memfsPlugin });

export default {
  input: 'src/main.js',
  output: {
    file: 'dist/bundle.js',
    format: ...
  },
  plugins: [
    serve({ contentBase: ['./dist'] }),
    memfsPlugin,
    livereloadPlugin,
  ]
}

Options

OptionTypeRequiredDefaultDescription
reloadEmitterReloadEmittertrueundefinedEventEmitter that emits reload event for reloading user's page.
verbosity"silent" | "startup" | "debug" Verbosityfalse"startup"Level of output verbosity.
watchstringfalseundefinedA single path or an array of paths that should be watched for changes for reloading the user's page.Accepts both directories and specific files.If not specified, any reload event will cause page refresh.If relative path is specified, it's resolved relative to Rollup output directory (or directory in which output.file resides; each output is checked).
portnumberfalse35729Port that LiveReload WS server will listen to.
clientUrlstringfalseundefinedURL of a custom client JS script that's supposed to connect to LiveReload WS server.

ReloadEmitter

If you're writing your own emitter (as opposed to using, for example, rollup-plugin-memory-fs), note that you should emit reload event for each file that caused the reload (in case there were several files), so that handler can respect the watch parameter accurately. All emissions of reload events are buffered for the next iteration of Node.js event loop, so it's fine to emit several events simultaneously.

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions and feedback are more than welcome.

To get it running: 1. Clone the project; 2. npm install; 3. npm run build.

Credits

License

The MIT License (MIT). Please see LICENSE for more information.