live-server.nvim/README.md
Barrett Ruth f42f958c24
feat: replace npm live-server with pure-Lua HTTP server (#29)
## Problem

The plugin requires users to install Node.js and the `live-server` npm
package globally. This is a heavyweight external dependency for what
amounts to a simple local dev-server workflow, and it creates friction
for users who don't otherwise need Node.js.

## Solution

Replace the npm shell-out with a pure-Lua HTTP server built on `vim.uv`
(libuv bindings), eliminating all external dependencies. The new server
supports static file serving, SSE-based live reload, CSS hot-swap
without full page reload, directory listings, and recursive file
watching with configurable debounce.

Minimum Neovim version is bumped to 0.10 for `vim.uv` and `vim.ui.open`.
The old `args`-based config is automatically migrated with a deprecation
warning.

Closes #28.
2026-03-02 23:16:35 -05:00

33 lines
860 B
Markdown

# live-server.nvim
Live reload HTML, CSS, and JavaScript files inside Neovim. No external
dependencies — the server runs entirely in Lua using Neovim's built-in libuv
bindings.
## Dependencies
- Neovim >= 0.10
## Installation
Install with your package manager or via
[luarocks](https://luarocks.org/modules/barrettruth/live-server.nvim):
```
luarocks install live-server.nvim
```
## Documentation
```vim
:help live-server.nvim
```
## Known Limitations
- **No recursive file watching on Linux**: libuv's `uv_fs_event` only supports
recursive directory watching on macOS and Windows. On Linux (inotify), the
`recursive` flag is silently ignored, so only files in the served root
directory trigger hot-reload. Files in subdirectories (e.g. `css/style.css`)
will not be detected. See
[libuv#1778](https://github.com/libuv/libuv/issues/1778).