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 🙏

© 2024 – Pkg Stats / Ryan Hefner

es-node-runner

v2.2.0

Published

Node runner that transpiles typescript or es modules using blazing fast ⚡ esbuild and restarts the process automatically on change. Suitable for node development server.

Downloads

20

Readme

es-node-runner

npm NPM npm bundle size

Node runner that transpiles typescript or es modules using blazing fast ⚡ esbuild and restarts the process automatically on change. Suitable for node development server.

Usage

  1. Install as devDependency using npm or yarn,

    npm i --save-dev es-node-runner
    
    # or
    
    yarn add -D es-node-runner
  2. Add your config using one of the available formats. es-node-runner uses only one file if there are multiple configuration files in the root directory, The priority order is as follows,

    • es-node-runner.config.js
    • package.json

    If no configuration is found, then default config will be used.

  3. Finally, add es-node-runner to package.json scripts

    {
      "scripts": {
        "<script_name>": "es-node-runner"
      }
    }

    and run the script using npm or yarn as, npm run <script_name> or yarn <script_name>

Configurations

Following options are available for configuring es-node-runner.

buildOptions: {
    // Entry point for bundling
    entry: string,
    // Sets the output directory for build operation.
    outdir: string,
    // Sets the file name for bundled output. This is applicable only if bundle is true.
    outfile: string,
    format: 'iife' | 'cjs' | 'esm',
    // Sets the target for generated code
    target: string,
    // Generates sourcemap
    sourcemap: boolean,
},
watchOptions: {
    // Path or list of paths to be watched for changes.
    watch: string | string[],
    // Ignore list of files / paths from watching for changes.
    ignore: string | string[],
},
spawnOptions: {
    // Rebuild will be delayed by specified time (in millisecond).
    delay: number,
    // Restart sub process manually with terminal cmd
    restartCmd: string,
    // Clear the terminal output before restart
    clearTerminal: boolean,
    // To restart manually with cmd, set this to false. This is helpful if we want to restart only when necessary
    autoRestart: boolean,
    // Enable or disable logging
    logging: boolean,
    // Pass cli options to node executable
    args: string[];
},

Note: All options are optional.

CLI Options

Following command line options are available,

  1. --debug - with optional comma(,) separated namespace to enable specific namespace for debugging.

Config file formats

ESM version of config file

Example
export default {
  spawnOptions: {
    // This will disables the logging if debug is enabled
    logging: !process.env.DEBUG,
  },
};

CommonJs version of config file

Example
module.exports = {
  spawnOptions: {
    // This will disables the logging if debug is enabled
    logging: !process.env.DEBUG,
  },
};

For auto-completion, add @type jsdoc comment.

Example
/**
 * @type {import('es-node-runner').Config}
 */
module.exports = {
  buildOptions: {
    entry: 'src/index.ts',
  },
  watchOptions: {
    watch: ['src'],
  },
};