nano-server is an ultra-lightweight node.js HTTP server for web development. It exposes a local directory through HTTP, simplifying development of front-end apps that require functionality blocked by cross-origin protections, e.g. AJAX, Canvas Image Processing, Web Audio Analysis, WebGL textures.
nano-server
provides some features that I didn't find in similar server packages:
- Sends gzipped versions of files, if they are available.
- Attempts to set the Content-Type header with the appropriate MIME type for browser-relevant file types.
- 0 dependencies. Can be dropped into any project.
The simplest way to install nano-server
is as a global install through npm:
$ npm install -g nano-server
Then nano-server
can be invoked as a command line executable:
$ nano-server
By default, nano-server
will run on port 5000 and use the current working directory as its document root. Optionally, a port number can be passed as first argument on the command line:
$ nano-server 3000
The document root can be given as second argument, if desired.
$ nano-server 5000 my_app/public_html
Since nano-server
has no dependancies, it can be dropped directly into any project and invoked using node
explicitly. This can be useful if you don't have the necessary permissions to do a global install on the machine you're using:
$ cp nano-server ~/path/to/project/
$ cd ~/path/to/project/
$ node nano-server