A simple development http server with live reload capability.

Overview

view on npm npm module downloads per month build status

Live Server

This is a little development server with live reload capability. Use it for hacking your HTML/JavaScript/CSS files, but not for deploying the final site.

There are two reasons for using this:

  1. AJAX requests don't work with the file:// protocol due to security restrictions, i.e. you need a server if your site fetches content through JavaScript.
  2. Having the page reload automatically after changes to files can accelerate development.

You don't need to install any browser plugins or manually add code snippets to your pages for the reload functionality to work, see "How it works" section below for more information. If you don't want/need the live reload, you should probably use something even simpler, like the following Python-based one-liner:

python -m SimpleHTTPServer

Installation

You need node.js and npm. You should probably install this globally.

Npm way

npm install -g live-server

Manual way

git clone https://github.com/tapio/live-server
cd live-server
npm install # Local dependencies if you want to hack
npm install -g # Install globally

Usage from command line

Issue the command live-server in your project's directory. Alternatively you can add the path to serve as a command line parameter.

This will automatically launch the default browser. When you make a change to any file, the browser will reload the page - unless it was a CSS file in which case the changes are applied without a reload.

Command line parameters:

  • --port=NUMBER - select port to use, default: PORT env var or 8080
  • --host=ADDRESS - select host address to bind to, default: IP env var or 0.0.0.0 ("any address")
  • --no-browser - suppress automatic web browser launching
  • --browser=BROWSER - specify browser to use instead of system default
  • --quiet | -q - suppress logging
  • --verbose | -V - more logging (logs all requests, shows all listening IPv4 interfaces, etc.)
  • --open=PATH - launch browser to PATH instead of server root
  • --watch=PATH - comma-separated string of paths to exclusively watch for changes (default: watch everything)
  • --ignore=PATH - comma-separated string of paths to ignore (anymatch-compatible definition)
  • --ignorePattern=RGXP - Regular expression of files to ignore (ie .*\.jade) (DEPRECATED in favor of --ignore)
  • --no-css-inject - reload page on CSS change, rather than injecting changed CSS
  • --middleware=PATH - path to .js file exporting a middleware function to add; can be a name without path nor extension to reference bundled middlewares in middleware folder
  • --entry-file=PATH - serve this file (server root relative) in place of missing files (useful for single page apps)
  • --mount=ROUTE:PATH - serve the paths contents under the defined route (multiple definitions possible)
  • --spa - translate requests from /abc to /#/abc (handy for Single Page Apps)
  • --wait=MILLISECONDS - (default 100ms) wait for all changes, before reloading
  • --htpasswd=PATH - Enables http-auth expecting htpasswd file located at PATH
  • --cors - Enables CORS for any origin (reflects request origin, requests with credentials are supported)
  • --https=PATH - PATH to a HTTPS configuration module
  • --https-module=MODULE_NAME - Custom HTTPS module (e.g. spdy)
  • --proxy=ROUTE:URL - proxy all requests for ROUTE to URL
  • --help | -h - display terse usage hint and exit
  • --version | -v - display version and exit

Default options:

If a file ~/.live-server.json exists it will be loaded and used as default options for live-server on the command line. See "Usage from node" for option names.

Usage from node

var liveServer = require("live-server");

var params = {
	port: 8181, // Set the server port. Defaults to 8080.
	host: "0.0.0.0", // Set the address to bind to. Defaults to 0.0.0.0 or process.env.IP.
	root: "/public", // Set root directory that's being served. Defaults to cwd.
	open: false, // When false, it won't load your browser by default.
	ignore: 'scss,my/templates', // comma-separated string for paths to ignore
	file: "index.html", // When set, serve this file (server root relative) for every 404 (useful for single-page applications)
	wait: 1000, // Waits for all changes, before reloading. Defaults to 0 sec.
	mount: [['/components', './node_modules']], // Mount a directory to a route.
	logLevel: 2, // 0 = errors only, 1 = some, 2 = lots
	middleware: [function(req, res, next) { next(); }] // Takes an array of Connect-compatible middleware that are injected into the server middleware stack
};
liveServer.start(params);

HTTPS

In order to enable HTTPS support, you'll need to create a configuration module. The module must export an object that will be used to configure a HTTPS server. The keys are the same as the keys in options for tls.createServer.

For example:

var fs = require("fs");

module.exports = {
	cert: fs.readFileSync(__dirname + "/server.cert"),
	key: fs.readFileSync(__dirname + "/server.key"),
	passphrase: "12345"
};

If using the node API, you can also directly pass a configuration object instead of a path to the module.

HTTP/2

To get HTTP/2 support one can provide a custom HTTPS module via --https-module CLI parameter (httpsModule option for Node.js script). Be sure to install the module first. HTTP/2 unencrypted mode is not supported by browsers, thus not supported by live-server. See this question and can I use page on HTTP/2 for more details.

For example from CLI(bash):

live-server \
	--https=path/to/https.conf.js \
	--https-module=spdy \
	my-app-folder/

Troubleshooting

  • No reload on changes
    • Open your browser's console: there should be a message at the top stating that live reload is enabled. Note that you will need a browser that supports WebSockets. If there are errors, deal with them. If it's still not working, file an issue.
  • Error: watch ENOSPC
  • Reload works but changes are missing or outdated
    • Try using --wait=MS option. Where MS is time in milliseconds to wait before issuing a reload.

How it works

The server is a simple node app that serves the working directory and its subdirectories. It also watches the files for changes and when that happens, it sends a message through a web socket connection to the browser instructing it to reload. In order for the client side to support this, the server injects a small piece of JavaScript code to each requested html file. This script establishes the web socket connection and listens to the reload requests. CSS files can be refreshed without a full page reload by finding the referenced stylesheets from the DOM and tricking the browser to fetch and parse them again.

Contributing

We welcome contributions! See CONTRIBUTING.md for details.

Version history

  • v1.2.1
    • --https-module=MODULE_NAME to specify custom HTTPS module (e.g. spdy) (@pavel)
    • --no-css-inject to reload page on css change instead of injecting the changes (@kylecordes)
    • Dependencies updated to get rid of vulnerabilities in deps
  • v1.2.0
    • Add --middleware parameter to use external middlewares
    • middleware API parameter now also accepts strings similar to --middleware
    • Changed file watcher to improve speed (@pavel)
    • --ignore now accepts regexps and globs, --ignorePattern deprecated (@pavel)
    • Added --verbose cli option (logLevel 3) (@pavel)
      • Logs all requests, displays warning when can't inject html file, displays all listening IPv4 interfaces...
    • HTTPS configuration now also accepts a plain object (@pavel)
    • Move --spa to a bundled middleware file
    • New bundled spa-no-assets middleware that works like spa but ignores requests with extension
    • Allow multiple --open arguments (@PirtleShell)
    • Inject to head if body not found (@pmd1991)
    • Update dependencies
  • v1.1.0
    • Proxy support (@pavel)
    • Middleware support (@achandrasekar)
    • Dependency updates (@tapio, @rahatarmanahmed)
    • Using Travis CI
  • v1.0.0
    • HTTPS support (@pavel)
    • HTTP Basic authentication support (@hey-johnnypark)
    • CORS support (@pavel)
    • Support mounting single files (@pavel)
    • --spa cli option for single page apps, translates requests from /abc to /#/abc (@evanplaice)
    • Check IP env var for default host (@dotnetCarpenter)
    • Fix ignorePattern from config file (@cyfersystems)
    • Fix test running for Windows (@peterhull90)
  • v0.9.2
    • Updated most dependencies to latest versions
    • --quiet now silences warning about injection failure
    • Giving explicit --watch paths now disables adding mounted paths to watching
  • v0.9.1
    • --ignorePattern=RGXP exclude files from watching by regexp (@psi-4ward)
    • --watch=PATH cli option to only watch given paths
  • v0.9.0
    • --mount=ROUTE:PATH cli option to specify alternative routes to paths (@pmentz)
    • --browser=BROWSER cli option to specify browser to use (@sakiv)
    • Improved error reporting
    • Basic support for injecting the reload code to SVG files (@dotnetCarpenter, @tapio)
    • LiveServer.shutdown() function to close down the server and file watchers
    • If host parameter is given, use it for browser URL instead of resolved IP
    • Initial testing framework (@harrytruong, @evanplaice, @tapio)
  • v0.8.2
    • Load initial settings from ~/.live-server.json if exists (@mikker)
    • Allow --port=0 to select random port (@viqueen)
    • Fix injecting when file extension is not lower case (@gusgard)
    • Fail gracefully if browser does not support WebSockets (@mattymaloney)
    • Switched to a more maintained browser opening library
  • v0.8.1
    • Add --version / -v command line flags to display version
    • Add --host cli option to mirror the API parameter
    • Once again use 127.0.0.1 instead of 0.0.0.0 as the browser URL
  • v0.8.0
    • Support multiple clients simultaneously (@dvv)
    • Pick a random available port if the default is in use (@oliverzy, @harrytruong)
    • Fix Chrome sometimes not applying CSS changes (@harrytruong)
    • --ignore=PATH cli option to not watch given server root relative paths (@richardgoater)
    • --entry-file=PATH cli option to specify file to use when request is not found (@izeau)
    • --wait=MSECS cli option to wait specified time before reloading (@leolower, @harrytruong)
  • v0.7.1
    • Fix hang caused by trying to inject into fragment html files without </body>
    • logLevel parameter in library to control amount of console spam
    • --quiet cli option to suppress console spam
    • --open=PATH cli option to launch browser in specified path instead of root (@richardgoater)
    • Library's noBrowser: true option is deprecated in favor of open: false
  • v0.7.0
    • API BREAKAGE: LiveServer library now takes parameters in an object
    • Add possibility to specify host to the lib
    • Only inject to host page when working with web components (e.g. Polymer) (@davej)
    • Open browser to 127.0.0.1, as 0.0.0.0 has issues
    • --no-browser command line flag to suppress browser launch
    • --help command line flag to display usage
  • v0.6.4
    • Allow specifying port from the command line: live-server --port=3000 (@Pomax)
    • Don't inject script as the first thing so that DOCTYPE remains valid (@wmira)
    • Be more explicit with listening to all interfaces (@inadarei)
  • v0.6.3
    • Fix multiple _cacheOverride parameters polluting css requests
    • Don't create global variables in the injected script
  • v0.6.2
    • Fix a deprecation warning from send
  • v0.6.1
    • Republish to fix npm troubles
  • v0.6.0
    • Support for using as node library (@dpgraham)
  • v0.5.0
    • Watching was broken with new versions of watchr > 2.3.3
    • Added some logging to console
  • v0.4.0
    • Allow specifying directory to serve from command line
  • v0.3.0
    • Directory listings
  • v0.2.0
    • On-the-fly CSS refresh (no page reload)
    • Refactoring
  • v0.1.1
    • Documentation and meta tweaks
  • v0.1.0
    • Initial release

License

Uses MIT licensed code from Connect and Roots.

(MIT License)

Copyright (c) 2012 Tapio Vierros

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Can i speed up the browser refresh after saving the file?

    Can i speed up the browser refresh after saving the file?

    Hi, thanks for this excellent program!

    I am using it in VS Code with Firefox, and there is approximately a 3 second delay in me pressing ctrl-s in the editor and the webpage being updated. Is there any way to speed this up? Thanks.

    opened by David-Else 29
  • SPA setting: ignore files with extensions

    SPA setting: ignore files with extensions

    When running our app we do want requests like /123/ to be converted to /#/123, however things like /style.css or /foo.png should be ignored. This commit changes the behaviour for the spa setting so it only applies to requests without an extension.

    This is a breaking change - I did also think if you were not so keen on this we could introduce a new configuration setting / CLI flag?

    opened by jackfranklin 14
  • On-the-fly css refresh not working

    On-the-fly css refresh not working

    Thanks @tapio , you have made a great library.

    I have html like this:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Belajar</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <strong>Helos</strong>
    </body>
    </html>
    

    And style.css, like this:

    strong {
        color: pink;
    }
    

    HTML is automatically reload when there is a change, but css is not automatically changed when there is a change is CSS. My terminal say CSS Change detected. What should I do??

    Update: on-the-fly css refresh is works when I hover over browser (I'm using Chrome 39.0.2171.95 (64-bit). If my cursor stay in my text editor (sublime), the change (CSS) won't show up in browser.

    Here is my generated html:

    
    <script>
        // Code injected by live-server
        (function() {
            function refreshCSS() {
                var sheets = document.getElementsByTagName("link");
                for (var i = 0; i < sheets.length; ++i) {
                    var elem = sheets[i];
                    var rel = elem.rel;
                    if (elem.href && typeof rel != "string" || rel.length == 0 || rel.toLowerCase() == "stylesheet") {
                        var url = elem.href.replace(/(&|\?)_cacheOverride=d+/, '');
                        elem.href = url + (url.indexOf('?') >= 0 ? '&' : '?') + '_cacheOverride=' + (new Date().valueOf());
                    }
                }
            }
            protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://'; 
            address = protocol + window.location.host + window.location.pathname + '/ws'; 
            socket = new WebSocket(address); 
            socket.onmessage = function(msg) {
                if (msg.data == 'reload') window.location.reload()
                else if (msg.data == 'refreshcss') refreshCSS();
            }; 
            console.log('Live reload enabled.'); 
        })();
    </script>
    <!DOCTYPE html>
    <html>
    <head>
        <title>Belajar</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <strong>Helos</strong>
    </body>
    </html>
    

    Thanks.

    opened by rawaludin 14
  • Uncaught SyntaxError: Unexpected token < myCode.js:1

    Uncaught SyntaxError: Unexpected token < myCode.js:1

    I have a simple html that loads a simple external javascript file and live-server can't seem to cope with that. It works when I view my index.html on Chrome with a double click, but when I use live-server to view the same file on localhost, I get this error on Chrome:

    Uncaught SyntaxError: Unexpected token <

    Here is my index.html:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>My Awesome App!</title>
    	<meta charset="utf-8">
    </head>
    <body>
    	<div id="container"></div>
    	<p>Hello</p>
    	<script type="text/javascript" src="myCode.js"></script>
    </body>
    </html>
    

    Here is my myCode.js:

    document.querySelector("#container").innerHTML = "Danny";
    

    I'm using a Windows 10 machine and I have live-server installed globally and it's version is

    live-server 1.2.0

    opened by alexandre1985 11
  • A problem with the new --cors flag

    A problem with the new --cors flag

    @genu posted

    I'm still unable to use the --cors flag it seems. In Chrome requests still get blocked across origins. I have to resort to a chrome extension in order to force cors. I was hoping that --cors would eliminate the need for it, did I misunderstand the purpose of the --cors flag?

    You did understand everything right. Seems like you're having a problem. Can you please share a sample of the code you're using (gist or here in a formatted way)? Also please post an output of npm ls executed in the project's folder, you're having the trouble with.

    opened by pavel 11
  • Add SPA (Single Page Application) support via a new --spa flag

    Add SPA (Single Page Application) support via a new --spa flag

    I stumbled on this application through the Angular2 - 5 minute Quickstart guide and -- so far -- have been very impressed with how easy it is to use.

    One of the challenges for newcomers to SPA development in Angular -- and SPA frameworks in general -- is figuring out how to setup a testing server that maps incoming server requests to client-side SPA routes.

    The intent of this feature is to make setting up a SPA testing/development server as simple/easy as possible.

    The typical approach is to setup basic backend server with a catch-all route that maps incoming requests to the SPA entry point (ie /index.html). To preserve the route, the path is truncated and the route is re-appended as a hash fragment.

    For example, a request to: /blog/post/interesting-thoughts

    Will translated to: /#/blog/posts/interesting-thoughts.

    That's exactly what this addition accomplishes. When live-server is launched with the --spa flag, it intercepts an incoming request, restructures it, and fires off a 302 redirect to the application entry point.

    Note: A 302 response is chosen because it's non-cacheable by default.

    Technically, the SPA redirect should only fire on inbound requests. Once the SPA is loaded, all internal linking is handled by the SPA router.

    There's probably some room for improvement here:

    • the hash fragment will likely need to be changed
    • making the hash fragment configurable would allow compatibility other existing SPA frameworks
    • choosing a 'sane' default would minimize configuration for the common use case
    • live-server lacks a testing framework so I haven't had a chance to verify that this doesn't break anything

    I'm planning on reaching out to the Angular dev team to ask for their input. From what I've come across so far, their primary focus is on the client-side and server-side implementation details will be left to the users. I'd like to bridge that gap and offer a low-barrier solution for people to get started.

    Input/feedback is welcome :+1:

    opened by evanplaice 11
  • Watch filter or path

    Watch filter or path

    Currently, the browser reloads on any file change in root. It'd be nice to filter which files, or directories, were watched. This way when I can point the watcher to my dist dir and only reload when that changes. Right now, I get a reload when I change a *.less file and another after the build step builds the css.

    I can do the PR if you like. Love the simplicity, thanks.

    Edit Why not set the root to dist? Because it's a doc page on gh-pages so the index.html is in the root of the project.

    enhancement 
    opened by levithomason 10
  • Spawn cmd ENNOENT - live-server won't open browser

    Spawn cmd ENNOENT - live-server won't open browser

    live-server stopped opening the browser. When I execute it in my command prompt I get the following error

    (node:456) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: spawn cmd ENOENT

    capture

    opened by romogo17 9
  • Add option of providing default settings

    Add option of providing default settings

    If the file ~/.live-server.json exists, use its' contents as default options.

    eg. I never want live-server to open my browser so I have

    {
      "open": false
    }
    

    in my ~/.live-server.json.

    opened by mikker 9
  • Failed to inject refresh script!

    Failed to inject refresh script!

    I am getting an error/warning like: Failed to inject refresh script! Couldn't find any of the tags [ ' ', '</ svg>' ] from <...> I am not sure what this message means. Any suggestions?

    opened by KevinBurton 8
  • gzip files

    gzip files

    Hi guys, sorry for the newbie question. There's any way to tell to live-server to enable the gzip-compression. I've create 2 build files one normal and one gzip and I would to load the second one. thanks, Daniele

    opened by daniele-zurico 8
  • Polling option for file watch to support usage in WSL 2

    Polling option for file watch to support usage in WSL 2

    Motivation: The method used by live-server to track file changes doesn't work in the Windows Subsystem for Linux V2 (see here for details). This can be fixed by enabling the usePolling option in chokidar.

    Changes: Add --poll command line and poll API options to live-server, set to false by default, which enable usePolling in chokidar. Update documentation.

    opened by tsherif 0
  • fix: force line endings to lf

    fix: force line endings to lf

    • Published node executable must be lf

    Fixes #394.

    $ grep version node_modules/live-server/package.json
      "version": "1.2.2",
    $ file node_modules/.bin/live-server 
    node_modules/.bin/live-server: a /usr/bin/env node script text executable, ASCII text, with very long lines (374), with CRLF line terminators
    
    $ grep version node_modules/live-server/package.json
      "version": "1.2.1",
    $ file node_modules/.bin/live-server 
    node_modules/.bin/live-server: a /usr/bin/env node script text executable, ASCII text, with very long lines (374)
    
    opened by AriPerkkio 0
  • up to date alternative

    up to date alternative

    new updated fork

    i created an updated fork, PR's and new features requests are welcome , it already contains some new features and updated dependencies

    alive-server npm alive-server github

    opened by ljcp 0
  • Live-server doesn't view changes automatically

    Live-server doesn't view changes automatically

    • Command-line: Pop OS Terminal
    • OS: Pop OS (Based on Ubuntu)
    • Browser: Brave Web Browser
    • Node.js Version: v12.22.9
    • live-server version: live-server 1.2.2
    opened by Osama-Elshimy 0
  • Add Python 3 snippet for a simple HTTP server

    Add Python 3 snippet for a simple HTTP server

    In Python 3, the SimpleHTTPServer has been merged with http.server module. Reference: https://stackoverflow.com/questions/7943751/what-is-the-python-3-equivalent-of-python-m-simplehttpserver

    opened by abhishek-nigam 0
Pathokun, a path generator, updates your content just with your frontend by HTTP GET Request!

Pathokun Pathokun, a path generator, update your content just with your frontend by HTTP GET Request! In this way you can make Full-Stack project with

Pathokun 15 Feb 7, 2022
Waits for HTTP response and retries request until the expected response is received.

Waits for expected HTTP response waitehr (wait [for] expected HTTP response) is a CLI program that waits for HTTP response and retries request until t

Gajus Kuizinas 31 Oct 3, 2022
Distributed, realtime CLI for live Node apps.

Vantage = CLI + SSH + REPL for your live node app. In one line: require("vantage")().listen(4000); What just happened? That's voodoo magic: show me th

dc 3.5k Dec 30, 2022
A CLI tool that allows you to ensure a database is live before closing the process

Wait for a database to be available prior to launching subsequent commands. ??⌛

Rida F'kih 3 Apr 16, 2022
A CLI to add and remove local development environments and create HTTPS certificates for them.

A CLI used to create a local https dev environment with the green lock. Setup takes less than 5 minutes and all of your projects will be running locally over HTTPS with custom domain names in no time!

Entrostat (Pty) Ltd 5 Sep 19, 2022
Keep track of book descriptions on the server-side using MongoDB, Express, and Node.js.

Backend Application A database model/backend for a user directory using Javascript MongoDB, Express, and Node.js. In summary, a backend CRUD model to

Rodrigo Bravo 3 Apr 10, 2022
Simple config handling for your app or module

conf Simple config handling for your app or module All you have to care about is what to persist. This module will handle all the dull details like wh

Sindre Sorhus 1k Jan 7, 2023
A simple CLI tool to create and manage xhelpers-api projects

A simple CLI tool to create and manage xhelpers-api projects

null 2 Feb 25, 2022
Implements live reload functionality to Adobe extension development.

Adobe Live Reload Adobe Live Reload implements live reload functionality to Adobe extension development. Features Reload Adobe Extensions on file save

Duncan Lutz 4 Apr 24, 2022
Live Reload Examples

Live Reload Examples Examples of live reloading code to create a fast feedback loop. Examples in this code repo accompany a soon to be published blog

Ashley Davis 16 Sep 29, 2022
Example of a ceramic app to showcase dynamic NFT capability

This is an example application that uses Ceramic, based on Next.js. Fork it freely. Getting Started Install dependencies. Create local ENV file with y

Ceramic Studio 12 Sep 6, 2022
An Betterdiscord plugin that gives the capability to the user send all discord stickers, expect wumpus default stickers.

allstickersexpectwumpusstickers An Betterdiscord plugin that gives the capability to the user send all discord stickers, expect wumpus default sticker

null 2 May 23, 2022
You can control the vibration capability of your device using the Vibration API. (JavaScript) This feature can useful in SPA and PWA.

Vibration Web API You can control the vibration capability of your device using the Vibration API. (JavaScript) This feature can useful in SPA and PWA

Max Base 2 Mar 29, 2022
Node.js web server framework for Http/1.1 or Http/2

Node.js web server framework for Http/1.1 or Http/2 Description: This is http framework, you can use it to create Http/1.1 or Http/2 service。 Now let'

Jeremy Yu 10 Mar 24, 2022
Refresh - Simple browser reload on file change middleware for your Deno web applications.

refresh Simple browser reload on file change middleware for your Deno web applications. Usage To use refresh middleware, just add a few extra lines to

Craig Morten 13 Dec 19, 2022
:zap: RAN! React . GraphQL . Next.js Toolkit :zap: - SEO-Ready, Production-Ready, SSR, Hot-Reload, CSS-in-JS, Caching, CLI commands and more...

RAN : React . GraphQL . Next.js Toolkit New version is coming... Follow up here: https://github.com/Sly777/ran/issues/677 Features Hot-Reload Ready fo

Ilker Guller 2.2k Jan 3, 2023
This experimental library patches the global custom elements registry to allow re-defining or reload a custom element.

Redefine Custom Elements This experimental library patches the global custom elements registry to allow re-defining a custom element. Based on the spe

Caridy Patiño 21 Dec 11, 2022
Browser tab reload automation.

SpeedFeed Browser tab reload automation. Report Bug · Request Feature · View License (back to top) Contributing Contributions are what make the open s

Start Rev Technology 4 Aug 10, 2022
Detect webpage updates and notify user to reload. support vite and umijs

English | 简体中文 plugin-web-update-notification Detect webpage updates and notify user to reload. support vite and umijs. Take the git commit hash as th

Utopia 57 Dec 26, 2022
Wrap a function with bun-livereload to automatically reload any imports inside the function the next time it is called

bun-livereload Wrap a function with bun-livereload to automatically reload any imports inside the function the next time it is called. import liveRelo

Jarred Sumner 19 Dec 19, 2022