Serve Local Files and Folders from any Directory with Node Based Web Server

A lot of times we just want to quickly serve a directory full of static assets over a web server so that we could quickly do some testing in the browser. Instead of setting up a full blown web server like Apache or Nginx and configuring it accordingly, we could simply use the http-server Node.js module.

http-server is a simple, zero-configuration command line HTTP server that is used to serve static content like html, css, js, image, video, font, etc. files. It is super simple to install and use it for local development and testing purposes.

Installation

To use the http-server package make sure you have node installed on your system that ships with the npm package manager. With that in place, install the module like this:

# Globally via npm
$ npm install -g http-server

# As an npm dependency which can then be used with
# npm run (scripts), npm exec, npx
$ npm install http-server

# For macOS users, brew is also an option
$ brew install http-server

Usage

Once the package is installed you can use it like any other executable from your terminal:

# usage: http-server [path] [options]

# If it was installed with -g
$ http-server

# If it was installed locally, then you could
$ npm exec http-server # or
$ npx http-server

I personally love just using npx:

# Fetch the package remotely (if not installed locally) and run the command
$ npx http-server
Starting up http-server, serving ./

http-server version: 14.1.0

http-server settings:
CORS: disabled
Cache: 3600 seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none

Available on:
  <http://127.0.0.1:8080>
  <http://192.168.189.92:8080>
Hit CTRL-C to stop the server

By default, the command http-server will start serving the current working directory at http://0.0.0.0:8080. You can easily configure the host and port like this:

$ npx http-server -a localhost -p 9090

It provides a bunch of other options as well for configuring, feel free to go through them by executing npx http-server --help.

Leave a Reply

Your email address will not be published. Required fields are marked *