diff --git a/README.md b/README.md
index a022494..35c8072 100644
--- a/README.md
+++ b/README.md
@@ -5,44 +5,42 @@
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
# local-web-server
-A static web-server for productive front-end development.
+A simple web-server for productive front-end development.
**Requires node v4.0.0 or higher**.
## Synopsis
-From the folder you wish to serve, run:
+Serve a directory on the default port:
```sh
$ ws
serving at http://localhost:8000
```
-If you wish to serve a different directory, run:
+Blacklist certain paths, for example config files:
```sh
-$ ws -d ~/mysite/
-serving /Users/Lloyd/mysite at http://localhost:8000
+$ ws --forbid .json .yml
+serving at http://localhost:8000
```
-If you wish to override the default port (8000), use `--port` or `-p`:
+Reduce bandwidth with gzip compression:
```sh
-$ ws --port 9000
-serving at http://localhost:9000
+$ ws --compress
```
-To add compression, reducing bandwidth, increasing page load time (by 10-15% on my Macbook Air)
+Specify a Single Page Application:
```sh
-$ ws --compress
+$ ws --spa index.html
```
## Install
Ensure [node.js](http://nodejs.org) is installed first. Linux/Mac users may need to run the following commands with `sudo`.
-### Globally
```sh
$ npm install -g local-web-server
```
-### Bundled with your project
+## Distribute with your project
```sh
$ npm install local-web-server --save-dev
```
@@ -71,24 +69,6 @@ $ npm install
$ npm start
```
-### Logging
-Passing a value to `--log-format` will write an access log to `stdout`.
-
-Either use a built-in [morgan](https://github.com/expressjs/morgan) logger preset:
-```sh
-$ ws --log-format short
-```
-
-Or a custom [morgan](https://github.com/expressjs/morgan) log format:
-```sh
-$ ws -f ':method -> :url'
-```
-
-Or silence:
-```sh
-$ ws -f none
-```
-
## Storing default options
To store per-project options, saving you the hassle of inputting them everytime, store them in the `local-web-server` property of your project's `package.json`:
```json
@@ -139,7 +119,7 @@ You can set additional mime-type/extension mappings, or override the defaults by
## Log Visualisation
Instructions for how to visualise log output using goaccess, logstalgia or gltail [here](https://github.com/75lb/local-web-server/wiki/Log-visualisation).
-# API Reference
+## API Reference
## local-web-server
@@ -152,7 +132,7 @@ Returns a Koa application
| Param | Type | Description |
| --- | --- | --- |
| [options] | object
| options |
-| [options.blacklist] | Array.<regexp>
| a list of forbidden routes. |
+| [options.forbid] | Array.<regexp>
| a list of forbidden routes. |
**Example**
```js
diff --git a/bin/cli.js b/bin/cli.js
index 89fd8ea..411f91c 100755
--- a/bin/cli.js
+++ b/bin/cli.js
@@ -40,14 +40,14 @@ localWebServer({
log: { format: options.server['log-format'] },
compress: options.server.compress,
mime: options.server.mime,
- blacklist: options.server.blacklist.map(regexp => RegExp(regexp, "i")),
+ forbid: options.server.forbid.map(regexp => RegExp(regexp, "i")),
proxyRoutes: options.server.proxyRoutes,
spa: options.server.spa,
'no-cache': options.server['no-cache']
}).listen(options.server.port, onServerUp)
function halt (err) {
- console.log(ansi.format(`Error: ${err.stack}`, 'red'))
+ console.log(ansi.format(`Error: ${err.message}`, 'red'))
console.log(usage)
process.exit(1)
}
@@ -77,7 +77,7 @@ function collectOptions () {
root: process.cwd(), // root dir when using multiple static dirs
directory: process.cwd(),
proxyRoutes: [],
- blacklist: []
+ forbid: []
}
/* override built-in defaults with stored config and then command line args */
diff --git a/jsdoc2md/README.hbs b/jsdoc2md/README.hbs
index 87d1515..cefdbe9 100644
--- a/jsdoc2md/README.hbs
+++ b/jsdoc2md/README.hbs
@@ -5,44 +5,42 @@
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
# local-web-server
-A static web-server for productive front-end development.
+A simple web-server for productive front-end development.
**Requires node v4.0.0 or higher**.
## Synopsis
-From the folder you wish to serve, run:
+Serve a directory on the default port:
```sh
$ ws
serving at http://localhost:8000
```
-If you wish to serve a different directory, run:
+Blacklist certain paths, for example config files:
```sh
-$ ws -d ~/mysite/
-serving /Users/Lloyd/mysite at http://localhost:8000
+$ ws --forbid .json .yml
+serving at http://localhost:8000
```
-If you wish to override the default port (8000), use `--port` or `-p`:
+Reduce bandwidth with gzip compression:
```sh
-$ ws --port 9000
-serving at http://localhost:9000
+$ ws --compress
```
-To add compression, reducing bandwidth, increasing page load time (by 10-15% on my Macbook Air)
+Specify a Single Page Application:
```sh
-$ ws --compress
+$ ws --spa index.html
```
## Install
Ensure [node.js](http://nodejs.org) is installed first. Linux/Mac users may need to run the following commands with `sudo`.
-### Globally
```sh
$ npm install -g local-web-server
```
-### Bundled with your project
+## Distribute with your project
```sh
$ npm install local-web-server --save-dev
```
@@ -71,24 +69,6 @@ $ npm install
$ npm start
```
-### Logging
-Passing a value to `--log-format` will write an access log to `stdout`.
-
-Either use a built-in [morgan](https://github.com/expressjs/morgan) logger preset:
-```sh
-$ ws --log-format short
-```
-
-Or a custom [morgan](https://github.com/expressjs/morgan) log format:
-```sh
-$ ws -f ':method -> :url'
-```
-
-Or silence:
-```sh
-$ ws -f none
-```
-
## Storing default options
To store per-project options, saving you the hassle of inputting them everytime, store them in the `local-web-server` property of your project's `package.json`:
```json
@@ -139,7 +119,7 @@ You can set additional mime-type/extension mappings, or override the defaults by
## Log Visualisation
Instructions for how to visualise log output using goaccess, logstalgia or gltail [here](https://github.com/75lb/local-web-server/wiki/Log-visualisation).
-# API Reference
+## API Reference
{{>main}}
diff --git a/lib/cli-options.js b/lib/cli-options.js
index 2ae1142..5ba58de 100644
--- a/lib/cli-options.js
+++ b/lib/cli-options.js
@@ -5,7 +5,7 @@ module.exports = {
description: 'Web server port', group: 'server'
},
{
- name: 'log-format', alias: 'f', type: String,
+ name: 'log-format', alias: 'l', type: String,
description: "If a format is supplied an access log is written to stdout. If not, a statistics view is displayed. Use a preset ('none', 'dev','combined', 'short', 'tiny' or 'logstalgia') or supply a custom format (e.g. ':method -> :url').", group: 'server'
},
{
@@ -17,6 +17,10 @@ module.exports = {
description: 'Enable gzip compression, reduces bandwidth.', group: 'server'
},
{
+ name: 'forbid', alias: 'f', type: String, multiple: true, typeLabel: '[underline]{regexp} ...',
+ description: 'A list of forbidden routes', group: 'server'
+ },
+ {
name: 'no-cache', alias: 'n', type: Boolean,
description: 'Disable etag-based caching - forces loading from disk each request.', group: 'server'
},
diff --git a/lib/local-web-server.js b/lib/local-web-server.js
index 3a6b63e..863ae2b 100644
--- a/lib/local-web-server.js
+++ b/lib/local-web-server.js
@@ -27,7 +27,7 @@ module.exports = localWebServer
* Returns a Koa application
*
* @param [options] {object} - options
- * @param [options.blacklist] {regexp[]} - a list of forbidden routes.
+ * @param [options.forbid] {regexp[]} - a list of forbidden routes.
* @alias module:local-web-server
* @example
* const localWebServer = require('local-web-server')
@@ -38,7 +38,7 @@ function localWebServer (options) {
serveIndex: {},
log: {},
compress: false,
- blacklist: [],
+ forbid: [],
directories: [],
proxyRoutes: []
}, options)
@@ -82,9 +82,9 @@ function localWebServer (options) {
app.use(cors())
/* path blacklist */
- if (options.blacklist.length) {
- app.use(function pathBlacklist (ctx, next) {
- if (options.blacklist.some(regexp => regexp.test(ctx.path))) {
+ if (options.forbid.length) {
+ app.use(function blacklist (ctx, next) {
+ if (options.forbid.some(regexp => regexp.test(ctx.path))) {
ctx.throw(403, http.STATUS_CODES[403])
} else {
return next()
diff --git a/package.json b/package.json
index f309eb9..2e013dc 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,6 @@
"http-proxy": "^1.12.0",
"kcors": "^1.0.1",
"koa": "^2.0.0-alpha.3",
- "koa-charset": "^1.1.4",
"koa-compress": "^1.0.8",
"koa-conditional-get": "^1.0.3",
"koa-convert": "^1.1.0",
@@ -45,12 +44,11 @@
"koa-send": "^3.1.0",
"koa-serve-index": "^1.1.0",
"koa-static": "^1.5.2",
- "morgan": "^1.0.0",
"path-to-regexp": "^1.2.1",
- "req-then": "^0.2.2",
"stream-log-stats": "^v1.1.0-0"
},
"devDependencies": {
+ "req-then": "^0.2.2",
"tape": "^4.2.2"
}
}