npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gustavnikolaj/server-helper

v3.2.0

Published

Resolve configuration and restart server on changes.

Readme

server helper

npm version Build Status

Simple node.js server helper module.

  • It will run your server, and allow you to have a clean main application file, which won't be cluttered with bootstrap code.
  • It can be used to restart your server on file change for a nice development experience.

Example

// app.js

const express = require("express");

module.exports = function appFactory() {
  const app = express();

  app.get("/", (req, res, next) => {
    res.send(`Hello, world!`);
  });

  return app;
};
$ server-helper app.js

CLI Options

  • --watch / -w: Enable automatic restarting on file changes.
  • --port / -p: Change the port number. [Default: 3000]
  • --host / -h: Change the host.

Programmatic use:

// start.js

const serverHelper = require("@gustavnikolaj/server-helper");

serverHelper({
  entrypoint: require.resolve("./app.js"),
  port: 5000
});
$ node start.js

The command line flags are still supported.

Config

Configuration can be given in multiple different ways, to support different use-cases. See doc/background/configuration.md.

Options given as cli flags are used before options given as environment variables, which are used before options given in the programmatic interface.

Configuration through cli flags

  • --watch / -w: Enable automatic restarting on file changes.
  • --port / -p: Change the port number. [Default: 3000]
  • --host / -h: Change the host.

The path to the entrypoint file is given as the only non-flag argument.

Configuration through environment variables.

Configuration can also be passed through environment variables.

  • PORT: The port number to listen to.
  • SERVERHELPER_PORT: Same as PORT, but higher specificity.
  • SERVERHELPER_HOST: What host to bind to.

Configuration through options in api mode

You call serverHelper with an options object as the only argument. This can only be done when invoking it programatically.

Supported properties:

  • entrypoint: The path to the file that implements the server handler.
  • port: The port number to listen to. (number)
  • host: The host to bind to. (string)
  • watch: Enables watch mode. (boolean)