Skip to content

CLI

leserve also ships as a CLI for serving a module’s export directly, without writing a serve() call yourself.

Terminal window
npm install -g @johnhenry/leserve
Terminal window
leserve <path-to-file> [options]

Or without a global install:

Terminal window
npx @johnhenry/leserve <path-to-file> [options]
  • -p, --port <port> — port number (default: 8000)
  • -e, --export <name> — export name to use (default: 'default')
  • --echo — enable echo mode

By default, leserve serves the default export from the specified file at localhost:8000.

myHandler.mjs
export default (request) => {
return new Response("Default Handler", {
headers: { "content-type": "text/plain" },
});
};
Terminal window
leserve myHandler.mjs

This serves the default export from myHandler.mjs at localhost:8000.

Terminal window
leserve myHandler.mjs -p 8001

Serves the default export from myHandler.mjs at localhost:8001.

myHandlers.mjs
export const handler = (request) => {
return new Response("Named Handler", {
headers: { "content-type": "text/plain" },
});
};
Terminal window
leserve myHandlers.mjs -p 8080 -e handler

Serves the export named handler from myHandlers.mjs at localhost:8080.

Terminal window
leserve --echo

Responds as an echo server: echoes back each request as a response in JSON format, on port 8000 by default.