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
nano-server can be invoked as a command line executable:
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
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