Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
local-web-server
Advanced tools
Requires node v7.6 or above. Upgraders, please read the release notes.
The modular web server for productive full-stack development.
Use this tool to:
Features:
This package installs the ws
command-line tool (take a look at the usage guide).
The most simple use case is to run ws
without any arguments - this will host the current directory as a static web site. Navigating to the server will render a directory listing or your index.html
, if that file exists.
$ ws
Serving at http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
Serving a Single Page Application (an app with client-side routing, e.g. a React or Angular app) is as trivial as specifying the name of your single page:
$ ws --spa index.html
Serving at http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
By default, requests for typical SPA paths (e.g. /user/1
, /login
) return 404 Not Found
as a file at that location does not exist. By marking index.html
as the SPA you create this rule:
If a static file is requested (e.g. /css/style.css
) then serve it, if not (e.g. /login
) then serve the specified SPA and handle the route client-side.
Another common use case is to re-route certain requests to a remote server if, for example, you'd like to use data from a different environment. The following command would proxy requests with a URL beginning with http://127.0.0.1:8000/api/
to https://internal-service.local/api/
:
$ ws --rewrite '/api/* -> https://internal-service.local/api/$1'
Serving at http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
Launching a secure server is as simple as setting the --https
flag. See the wiki for further configuration options and a guide on how to get the "green padlock" in your browser.
$ ws --https
Serving at https://mbp.local:8000, https://127.0.0.1:8000, https://192.168.0.100:8000
Uses node's built-in HTTP2 support. HTTP2 servers are always secure using local-web-server's built-in SSL certificates (by default) or those supplied by --cert
, --key
or --pfx
. See the wiki for further info about HTTPS options and a guide on how to get the "green padlock" in your browser.
$ ws --http2
Serving at https://mbp.local:8000, https://127.0.0.1:8000, https://192.168.0.100:8000
Imagine the network is down or you're working offline, proxied requests to https://internal-service.local/api/users/1
would fail. In this case, Mock Responses can fill the gap. Mocks are defined in a module which can be reused between projects.
Trivial example - respond to a request for /rivers
with some JSON. Save the following Javascript in a file named example-mocks.js
.
module.exports = MockBase => class MockRivers extends MockBase {
mocks () {
return {
route: '/rivers',
responses: [
{
response: {
type: 'json',
body: [
{ name: 'Volga', drainsInto: 'Caspian Sea' },
{ name: 'Danube', drainsInto: 'Black Sea' },
{ name: 'Ural', drainsInto: 'Caspian Sea' },
{ name: 'Dnieper', drainsInto: 'Black Sea' }
]
}
}
]
}
}
}
Launch ws
passing in your mocks module.
$ ws --mocks example-mocks.js
Serving at http://mbp.local:8000, http://127.0.0.1:8000, http://192.168.0.100:8000
GET your rivers.
$ curl http://127.0.0.1:8000/rivers
[
{
"name": "Volga",
"drainsInto": "Caspian Sea"
},
{
"name": "Danube",
"drainsInto": "Black Sea"
},
{
"name": "Ural",
"drainsInto": "Caspian Sea"
},
{
"name": "Dnieper",
"drainsInto": "Black Sea"
}
]
See the tutorials for more information and examples about mock responses.
See the wiki for plenty more documentation and tutorials.
Requires node v7.6 or above. Install the previous release for node >= v4.0.0.
$ npm install -g local-web-server
© 2013-18 Lloyd Brookes 75pound@gmail.com. Documented by jsdoc-to-markdown.
FAQs
A lean, modular web server for rapid full-stack development
The npm package local-web-server receives a total of 51,367 weekly downloads. As such, local-web-server popularity was classified as popular.
We found that local-web-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.