Lloyd Brookes
9 years ago
5 changed files with 39 additions and 230 deletions
-
36README.md
-
30doc/api.md
-
193jsdoc2md/README.hbs
-
8jsdoc2md/api.hbs
-
2package.json
@ -0,0 +1,30 @@ |
|||
## API Reference |
|||
|
|||
|
|||
* [local-web-server](#module_local-web-server) |
|||
* [LocalWebServer](#exp_module_local-web-server--LocalWebServer) ⇐ <code>[middleware-stack](#module_middleware-stack)</code> ⏏ |
|||
* _instance_ |
|||
* [.add(middleware)](#) ↩︎ |
|||
* _inner_ |
|||
* [~collectUserOptions()](#module_local-web-server--LocalWebServer..collectUserOptions) |
|||
|
|||
<a name="exp_module_local-web-server--LocalWebServer"></a> |
|||
|
|||
### LocalWebServer ⇐ <code>[middleware-stack](#module_middleware-stack)</code> ⏏ |
|||
**Kind**: Exported class |
|||
**Extends:** <code>[middleware-stack](#module_middleware-stack)</code> |
|||
<a name=""></a> |
|||
|
|||
#### localWebServer.add(middleware) ↩︎ |
|||
**Kind**: instance method of <code>[LocalWebServer](#exp_module_local-web-server--LocalWebServer)</code> |
|||
**Chainable** |
|||
**Params** |
|||
|
|||
- middleware <code>[middleware](#module_middleware-stack--MiddlewareStack..middleware)</code> |
|||
|
|||
<a name="module_local-web-server--LocalWebServer..collectUserOptions"></a> |
|||
|
|||
#### LocalWebServer~collectUserOptions() |
|||
Return default, stored and command-line options combined |
|||
|
|||
**Kind**: inner method of <code>[LocalWebServer](#exp_module_local-web-server--LocalWebServer)</code> |
@ -1,193 +0,0 @@ |
|||
[![view on npm](http://img.shields.io/npm/v/local-web-server.svg)](https://www.npmjs.org/package/local-web-server) |
|||
[![npm module downloads](http://img.shields.io/npm/dt/local-web-server.svg)](https://www.npmjs.org/package/local-web-server) |
|||
[![Build Status](https://travis-ci.org/75lb/local-web-server.svg?branch=master)](https://travis-ci.org/75lb/local-web-server) |
|||
[![Dependency Status](https://david-dm.org/75lb/local-web-server.svg)](https://david-dm.org/75lb/local-web-server) |
|||
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard) |
|||
[![Join the chat at https://gitter.im/75lb/local-web-server](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/75lb/local-web-server?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
|||
|
|||
***Requires node v4.0.0 or higher. Install the [previous release](https://github.com/75lb/local-web-server/tree/prev) for older node support.*** |
|||
|
|||
# local-web-server |
|||
An application shell for building a simple, command-line web server for productive web development. |
|||
|
|||
It is trivial is bundle and deploy with your project. Also deploys to heroku well for demo projects. |
|||
|
|||
It comes with some middleware built-in, which you need not use but will get you up and running for the following use cases: |
|||
|
|||
* Static or Single Page Application front-end development where you have |
|||
* No backend, an existing remote API or need to mock-up an API. |
|||
|
|||
Application Shell |
|||
* HTTP or HTTPS server |
|||
* HTTPS is strictly required by some modern techs (ServiceWorker, Media Capture and Streams etc.) |
|||
* Add your middleware |
|||
* Use any combination of built-in and custom middleware |
|||
* specify options (for command line or config) |
|||
* Accepts Koa v1 or 2 middleware |
|||
* Bundle with your front-end project |
|||
* Configuration is via json file or command-line (latter taking presedence) |
|||
* Outputs a dynamic statistics view to the terminal |
|||
|
|||
|
|||
Built-in Middleware (all optional) |
|||
* Rewrite routes to local or remote resources |
|||
* Efficient, predictable, entity-tag-powered conditional request handling (no need to 'Disable Cache' in DevTools, slowing page-load down) |
|||
* Configurable log output, compatible with [Goaccess, Logstalgia and glTail](https://github.com/75lb/local-web-server/blob/master/doc/visualisation.md) |
|||
* Proxy server |
|||
* Map local routes to remote servers. Removes CORS pain when consuming remote services. |
|||
* Back-end service mocking |
|||
* Prototype a web service, microservice, REST API etc. |
|||
* Mocks are defined with config (static), or code (dynamic). |
|||
* CORS-friendly, all origins allowed by default. |
|||
|
|||
## Synopsis |
|||
local-web-server is a command-line tool. To serve the current directory, run `ws`. |
|||
|
|||
<pre><code>$ ws --help |
|||
|
|||
<strong>local-web-server</strong> |
|||
|
|||
A simple web-server for productive front-end development. |
|||
|
|||
<strong>Synopsis</strong> |
|||
|
|||
$ ws [<server options>] |
|||
$ ws --config |
|||
$ ws --help |
|||
|
|||
<strong>Server</strong> |
|||
|
|||
-p, --port number Web server port. |
|||
-d, --directory path Root directory, defaults to the current directory. |
|||
-f, --log-format string If a format is supplied an access log is written to stdout. If |
|||
not, a dynamic statistics view is displayed. Use a preset ('none', |
|||
'dev','combined', 'short', 'tiny' or 'logstalgia') or supply a |
|||
custom format (e.g. ':method -> :url'). |
|||
-r, --rewrite expression ... A list of URL rewrite rules. For each rule, separate the 'from' |
|||
and 'to' routes with '->'. Whitespace surrounded the routes is |
|||
ignored. E.g. '/from -> /to'. |
|||
-s, --spa file Path to a Single Page App, e.g. app.html. |
|||
-c, --compress Serve gzip-compressed resources, where applicable. |
|||
-b, --forbid path ... A list of forbidden routes. |
|||
-n, --no-cache Disable etag-based caching -forces loading from disk each request. |
|||
--key file SSL key. Supply along with --cert to launch a https server. |
|||
--cert file SSL cert. Supply along with --key to launch a https server. |
|||
--https Enable HTTPS using a built-in key and cert, registered to the |
|||
domain 127.0.0.1. |
|||
--verbose Verbose output, useful for debugging. |
|||
|
|||
<strong>Misc</strong> |
|||
|
|||
-h, --help Print these usage instructions. |
|||
--config Print the stored config. |
|||
|
|||
Project home: https://github.com/75lb/local-web-server |
|||
</code></pre> |
|||
|
|||
## Examples |
|||
|
|||
For the examples below, we assume we're in a project directory looking like this: |
|||
|
|||
```sh |
|||
. |
|||
├── css |
|||
│ └── style.css |
|||
├── index.html |
|||
└── package.json |
|||
``` |
|||
|
|||
All paths/routes are specified using [express syntax](http://expressjs.com/guide/routing.html#route-paths). To run the example projects linked below, clone the project, move into the example directory specified, run `ws`. |
|||
|
|||
### Static site |
|||
|
|||
Fire up your static site on the default port: |
|||
```sh |
|||
$ ws |
|||
serving at http://localhost:8000 |
|||
``` |
|||
|
|||
[Example](https://github.com/75lb/local-web-server/tree/master/example/simple). |
|||
|
|||
### Other usage |
|||
|
|||
#### Debugging |
|||
|
|||
Prints information about loaded middleware, arguments, remote proxy fetches etc. |
|||
```sh |
|||
$ ws --verbose |
|||
``` |
|||
|
|||
#### Compression |
|||
|
|||
Serve gzip-compressed resources, where applicable |
|||
```sh |
|||
$ ws --compress |
|||
``` |
|||
|
|||
#### Disable caching |
|||
|
|||
Disable etag response headers, forcing resources to be served in full every time. |
|||
```sh |
|||
$ ws --no-cache |
|||
``` |
|||
|
|||
#### Log Visualisation |
|||
Instructions for how to visualise log output using goaccess, logstalgia or gltail [here](https://github.com/75lb/local-web-server/blob/master/doc/visualisation.md). |
|||
|
|||
## Install |
|||
Ensure [node.js](http://nodejs.org) is installed first. Linux/Mac users may need to run the following commands with `sudo`. |
|||
|
|||
```sh |
|||
$ npm install -g local-web-server |
|||
``` |
|||
|
|||
This will install the `ws` tool globally. To see the available options, run: |
|||
```sh |
|||
$ ws --help |
|||
``` |
|||
|
|||
## Distribute with your project |
|||
The standard convention with client-server applications is to add an `npm start` command to launch the server component. |
|||
|
|||
1\. Install the server as a dev dependency |
|||
|
|||
```sh |
|||
$ npm install local-web-server --save-dev |
|||
``` |
|||
|
|||
2\. Add a `start` command to your `package.json`: |
|||
|
|||
```json |
|||
{ |
|||
"name": "example", |
|||
"version": "1.0.0", |
|||
"local-web-server": { |
|||
"port": 8100, |
|||
"forbid": "*.json" |
|||
}, |
|||
"scripts": { |
|||
"start": "ws" |
|||
} |
|||
} |
|||
``` |
|||
|
|||
3\. Document how to build and launch your site |
|||
|
|||
```sh |
|||
$ npm install |
|||
$ npm start |
|||
serving at http://localhost:8100 |
|||
``` |
|||
|
|||
## API Reference |
|||
|
|||
{{#module name="local-web-server"}} |
|||
{{>body~}} |
|||
{{>member-index~}} |
|||
{{>separator~}} |
|||
{{>members~}} |
|||
{{/module}} |
|||
|
|||
* * * |
|||
|
|||
© 2013-16 Lloyd Brookes <75pound@gmail.com>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown). |
@ -0,0 +1,8 @@ |
|||
## API Reference |
|||
|
|||
{{#module name="local-web-server"}} |
|||
{{>body~}} |
|||
{{>member-index~}} |
|||
{{>separator~}} |
|||
{{>members~}} |
|||
{{/module}} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue