You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

dispense

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dispense

NodeJS server with express boilerplate

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source
░█▀▄░▀█▀░█▀▀░█▀█░█▀▀░█▀█░█▀▀░█▀▀
░█░█░░█░░▀▀█░█▀▀░█▀▀░█░█░▀▀█░█▀▀
░▀▀░░▀▀▀░▀▀▀░▀░░░▀▀▀░▀░▀░▀▀▀░▀▀▀

npm version

Простой HTTP-сервер на Node.js + Express для быстрого поднятия локального сервера.
Основной кейс: есть папка public (или любая другая) — нужно быстро начать её раздавать.

CLI-команда: dispense run

Install

# Глобально (удобно для быстрого использования везде)
npm install -g dispense

# Локально в проект (dev-зависимость)
npm install dispense

Fast start

# Если установлен глобально
dispense run

# Если установлен локально
npx dispense run

CLI options

dispense run [options]
 -a,   --api <path>         путь до файла с вашим кастомным роутером для api (дефолтный для Express синтаксис)
 -p,   --port <number>      порт (default 3000 или process.env.PORT)
 -d,   --public <path>      папка со статикой (default ./public)
 -nsh, --no-sec-headers     отключить security-заголовки
 -o,   --origins <list>     список origin для API CORS (separated by ,)
 -h,   --help               показать помощь

Examples:

# По умолчанию
dispense run              # раздаёт ./public

# Другая папка
dispense run --public ./dist

# Порт 4000, статика из ./your-dir
dispense run --port 4000 --public ./your-dir

# Без security-заголовков
dispense run --no-sec-headers

# Явный список origin для /api
dispense run --allowed-origins http://localhost:3000,https://example.com

# Важно: путь считается от текущей директории, где вы запускаете команду
cd /path/to/project
dispense run --public ./build

Custom API router

По умолчанию dispense использует встроенный роутер под /api. Можно передать свой роутер (файл/папку), который экспортирует Express Router:

// custom-api-router.js
import { Router } from 'express';

const router = Router({ mergeParams: true });

router.get('/ping', (req, res) => {
  res.json({ ok: true });
});

export default router;

Запуск с кастомным роутером:

dispense run --api-router ./custom-api-router.js

Путь считается от текущей рабочей директории.

Enviroment

# Если не указывать --port, берётся PORT или 3000
PORT=8080 dispense run

# Можно комбинировать с другими параметрами
PORT=5000 dispense run --public ./Public

Start via PM2

# Установка (если ещё нет)
npm install -g pm2 dispense

# Запуск
pm2 start dispense --name dev-server -- run --port 3000 --public ./Public

# Управление
pm2 restart dispense
pm2 stop dispense
pm2 delete dispense

Корректно обрабатываются SIGINT, SIGTERM и shutdown от PM2 (graceful shutdown).

Start from cloned repo

# После клонирования репо
npm install
npm start       # эквивалентно: node ./bin/run.js run
npx dispense    # при установке из репо - тоже работает


# Ручной запуск с параметрами
node ./bin/run.js run --port 4000 --public ./Public

Files descriptions

  • server.js — создание и запуск Express-сервера (createServer, startServer).
  • bin/run.js — CLI-обвязка (команда server).
  • public/* — Раздача статики + роутер фронтенда
  • Базовый API под /api.
  • Примеры middlewares - примитивная проверка клиента и basicAuth (при установке из NPM недоступно)
  • CORS + security-заголовки (можно выключить).
  • Логирование ошибок и аккуратное завершение работы.

License

MIT

Keywords

server

FAQs

Package last updated on 02 Dec 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts