Skip to content

vivaxy/here

Repository files navigation

here

here

Build Status NPM Version NPM Downloads MIT License

Local static server

Everything start from here.

Node.js >= 8.0

Feature

  • Look up available port automatically, which means multiple instances without specifying port.

  • Custom routes by scripting here.js.

  • Live reload.

  • Support https.

  • Add ip address to your server, which makes your server available to other devices.

  • Resolve get, post... every method into local files, for ajax.

  • Respond files without extension as application/json for ajax.

  • Open default browser after server launched.

  • When the server is on, press enter will open the browser.

Installation

[sudo] npm install -g @vivaxy/here

Usage

In your local folder, type here and it goes!

Advanced Usage

Specify port to 8888

here -p 8888

or

here --port 8888

Default port is 3000.

Switch protocol to https

here -S

or

here --ssl

Open Gzip

here -G

or

here --gzip

Specify server root directory

here -d test

or

here --directory test

Default directory is ./.

Watch file changes, once files changed, reload pages

here -w 3

or

here --watch

Default interval is 0 second.

Recommend to set reload interval to page reload time.

Do not open the browser

here -s

or

here --silent

Specify open browser IP

here --ip localhost

or

here --ip private

or

here --ip public

Default IP is public.

Output log

here -l

or

here --log 0

Middleware support

Write here.js in server base directory.

let db = {
  tobi: {
    name: 'tobi',
    age: 21
  },
  loki: {
    name: 'loki',
    age: 26
  },
  jane: {
    name: 'jane',
    age: 18
  }
};

module.exports = [
  {
    method: 'get',
    path: '/pets',
    data () {
      let names = Object.keys(db);
      return names.map((name) => {
        return db[name];
      });
    }
  },
  {
    method: 'get',
    path: '/pets/:name',
    data () {
      let name = this.params.name;
      let pet = db[name];
      if (!pet) {
        return {
          error: `cannot find pet ${name}`
        };
      } else {
        return pet;
      }
    }
  }
];

See koa-router document for more detail.

Prior Art

  • puer not support post, respond files without extension as application/octet-stream
  • anywhere not support post, and not support reload
  • browsersync not support post, respond files without extension as application/octet-stream
  • serve

Change Log

Change Log

Contributing

Contributing