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 🙏

© 2025 – Pkg Stats / Ryan Hefner

nquickdev

v1.0.3

Published

A professional-grade file watcher and development server for TypeScript/JavaScript applications. High-performance alternative to nodemon.

Readme

Nehonix QuickDev

A professional-grade file watcher and development server for TypeScript/JavaScript applications. This tool is designed as a high-performance alternative to nodemon, specifically optimized for modern Node.js/TypeScript applications with advanced features not found in other reloaders.

Designed for fortify2-js server but can be used in other applications

Features

Core Capabilities

  • High-performance file watching and reloading
  • Intelligent TypeScript/JavaScript detection and handling
  • Advanced project configuration detection
  • Sophisticated file system monitoring
  • Production-grade process management
  • Professional CLI interface with color-coded output

Advanced Features

Smart Process Management

  • Graceful shutdown with configurable timeout
  • Process restart statistics and history
  • Maximum restart limits with auto-reset
  • Configurable restart delay
  • Environment variable preservation

Advanced File Watching

  • File hashing for precise change detection
  • Batch processing of file changes
  • Polling and filesystem event support
  • Symlink following capability
  • Custom ignore patterns via file

Performance Optimization

  • Parallel file processing
  • Memory usage monitoring and limits
  • File size restrictions
  • Efficient batch change processing
  • Smart event debouncing

Health Monitoring

  • Process health checks
  • Memory usage tracking
  • Restart statistics
  • Error tracking and history
  • Performance metrics

Installation

Option 1: Install via npm (Recommended)

npm install -g nquickdev

Option 2: Install via Go

  1. Make sure you have Go installed (version 1.21 or higher)
  2. Install using Go:
    go install github.com/nehonix/quickdev@latest
    Or build from source:
    git clone https://github.com/nehonix/quickdev.git
    cd quickdev
    go build -o quickdev

Configuration

quickdev supports multiple ways to configure its behavior:

1. Configuration File

Create a quickdev.config.json (or .quickdevrc.json) in your project root:

{
  "script": "src/server.ts",
  "watch": ["src", "config"],
  "ignore": ["node_modules", "dist", "coverage"],
  "extensions": [".ts", ".js", ".jsx", ".tsx"],

  "gracefulShutdown": true,
  "gracefulShutdownTimeout": 5,
  "maxRestarts": 5,
  "resetRestartsAfter": 60000,
  "restartDelay": 100,

  "batchChanges": true,
  "batchTimeout": 300,
  "enableHashing": true,
  "usePolling": false,
  "pollingInterval": 100,
  "followSymlinks": false,
  "watchDotFiles": false,
  "ignoreFile": ".quickdevignore",

  "parallelProcessing": true,
  "memoryLimit": 500,
  "maxFileSize": 10,
  "excludeEmptyFiles": true,
  "debounceMs": 250,

  "healthCheck": true,
  "healthCheckInterval": 30,
  "clearScreen": true,

  "typescriptRunner": "tsx",
  "tsNodeFlags": "--esm"
}

Configuration Options

Core Settings

  • script - Path to the script to run (required)
  • watch - Directories to watch, array of paths
  • ignore - Directories to ignore, array of paths
  • extensions - File extensions to watch

Process Management

  • gracefulShutdown - Enable graceful shutdown (default: true)
  • gracefulShutdownTimeout - Graceful shutdown timeout in seconds (default: 5)
  • maxRestarts - Maximum number of restarts (default: 5)
  • resetRestartsAfter - Reset restart count after X milliseconds (default: 60000)
  • restartDelay - Delay before restart in milliseconds (default: 100)

File Watching

  • batchChanges - Enable batch processing of changes (default: true)
  • batchTimeout - Batch timeout in milliseconds (default: 300)
  • enableHashing - Enable file hashing for precise change detection (default: true)
  • usePolling - Use polling instead of filesystem events (default: false)
  • pollingInterval - Polling interval in milliseconds (default: 100)
  • followSymlinks - Follow symbolic links (default: false)
  • watchDotFiles - Watch dot files (default: false)
  • ignoreFile - Path to custom ignore file

Performance

  • parallelProcessing - Enable parallel processing (default: true)
  • memoryLimit - Memory limit in MB (default: 500)
  • maxFileSize - Maximum file size in MB (default: 10)
  • excludeEmptyFiles - Exclude empty files (default: true)
  • debounceMs - Debounce time in milliseconds (default: 250)

Monitoring

  • healthCheck - Enable health checking (default: true)
  • healthCheckInterval - Health check interval in seconds (default: 30)
  • clearScreen - Clear screen on restart (default: true)

TypeScript Settings (leave blank to use default runner (recommanded))

  • typescriptRunner - TypeScript execution engine to use ("tsx" or "ts-node", default: tries "tsx" first, then "ts-node")
  • tsNodeFlags - Additional flags for the TypeScript runner (default: "--esm" for ts-node)

2. Ignore File

Create a .quickdevignore file to specify patterns to ignore:

# Comments are supported
*.log
*.tmp
temp/
**/*.test.js
coverage/
dist/
build/
.git/

3. Command Line Arguments

All configuration options can be overridden via command line arguments:

quickdev -script server.js \
  --watch="src,config" \
  --ignore="node_modules,dist" \
  --ext=".ts,.js"

Command line arguments take precedence over configuration file settings.

Configuration Priority

quickdev uses the following priority order when loading configuration:

  1. Command line arguments (highest priority)
  2. quickdev.config.json or .quickdevrc.json
  3. .quickdevignore file
  4. Default values (lowest priority)

TypeScript Support

quickdev provides robust TypeScript support with configurable execution options:

TypeScript Runner Selection

You can specify your preferred TypeScript runner in the config:

{
  "typescriptRunner": "tsx", // or "ts-node"
  "tsNodeFlags": "--esm" // or any other flags you need
}

The runner selection follows this order:

  1. Uses the specified typescriptRunner if configured
  2. Falls back to tsx if available
  3. Falls back to ts-node if available
  4. Fails if no TypeScript runner is found

TypeScript Flags

  • For tsx: Pass any additional flags via tsNodeFlags
  • For ts-node: Default flags are --esm, can be overridden via tsNodeFlags

Example with custom flags:

{
  "typescriptRunner": "ts-node",
  "tsNodeFlags": "--esm --transpileOnly --compilerOptions '{\"module\":\"ESNext\"}'"
}

Usage Examples

Basic Usage

quickdev -script your-script.js

Advanced Usage

quickdev -script server.js \
  --watch="src,config" \
  --ignore="node_modules,dist,coverage" \
  --ext=".ts,.js,.jsx,.tsx" \
  --batch=true \
  --hash=true \
  --health=true \
  --graceful=true

Command Line Options

Core Options

  • -script - Path to the script to run (required)
  • -watch - Directories to watch, comma-separated (default: ".")
  • -ignore - Directories to ignore, comma-separated (default: "node_modules,dist,.git")
  • -ext - File extensions to watch (default: ".js,.ts,.jsx,.tsx")

Process Management

  • -graceful - Enable graceful shutdown (default: true)
  • -graceful-timeout - Graceful shutdown timeout in seconds (default: 5)
  • -max-restarts - Maximum number of restarts (default: 0 = unlimited)
  • -reset-after - Reset restart count after X milliseconds (default: 60000)
  • -restart-delay - Delay before restart in milliseconds (default: 100)

File Watching

  • -batch - Enable batch processing of changes (default: true)
  • -batch-timeout - Batch timeout in milliseconds (default: 300)
  • -hash - Enable file hashing for precise change detection (default: true)
  • -polling - Use polling instead of filesystem events (default: false)
  • -polling-interval - Polling interval in milliseconds (default: 100)
  • -follow-symlinks - Follow symbolic links (default: false)
  • -watch-dot - Watch dot files (default: false)
  • -ignore-file - Path to custom ignore file

Performance

  • -parallel - Enable parallel processing (default: true)
  • -memory - Memory limit in MB (default: 500)
  • -max-size - Maximum file size in MB (default: 10)
  • -exclude-empty - Exclude empty files (default: true)
  • -debounce - Debounce time in milliseconds (default: 250)

Monitoring

  • -health - Enable health checking (default: true)
  • -health-interval - Health check interval in seconds (default: 30)
  • -clear - Clear screen on restart (default: true)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details.