Skip to content

okwolf/srvs

Repository files navigation

srvs serves modern webapps for dev, with none of the fat

Build Status codecov npm

srvs is a zero dependency dev server with support for static content in addition to JavaScript modules hosted from local files and esm.sh.

Installation

Global

npm i -g srvs

Then you may run with:

srvs

npx

No install required, just run:

npx srvs

(npx comes with npm 5.2+ and higher.)

Local

Install with npm / Yarn:

npm i -D srvs

Then add srvs to the scripts in your package.json:

"scripts": {
  "start": "srvs"
}

Now you may run with:

npm start

Usage

Command Line

Here are the available command line arguments:

Argument Usage Default
port The port on which the dev server will listen. 8080
docRoot The relative path from which static assets such as index.html will be served. public
scriptRoot The relative path from which local JavaScript modules will be served. src

Each argument is passed in the form --argument=value. Here is an example using all available arguments:

npx srvs --port=3000 --docRoot=static --scriptRoot=js

API

srvs offers a programmatic way to integrate running with existing JavaScript code.

You may bring in the srvs API function using import if you have support for ES6 syntax:

import srvs from "srvs";

srvs(options).then(config => {
  // dev server is now open for business
});

Or using require:

const srvs = require("srvs");

srvs(options).then(config => {
  // dev server is now open for business
});

The options object has the same properties and values as the arguments supported by the command line version. The config parameter provided to the resolved Promise has the same properties as options.

Notes

  • This is only for use as a development tool, please do not use in production.
  • The docRoot and scriptRoot options will fall back to the current directory if they don't exist.
  • The BROWSER environment variable can be used to control which application to open your page in, or set to none to disable browser opening entirely. This feature is inspired by the popular create-react-app.

License

srvs is MIT licensed. See LICENSE.