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

child-process-exec-argv

v1.0.4

Published

Better handling child process exec argv

Downloads

28

Readme

Child process exec argv

Greenkeeper badge

NPM Version Build Status Test Coverage

child-process-exec-argv eases debugging of child process.

##Motivation Debugging nodejs forked or clusterd child process can sometimes be difficult. For example in visual studio code it almost comes out of the box. You will find you need to change the argsv of your child process - code modifications. It's not recommended for most projects to be framilier with the required code modification.

This is when this module comes in handy, it will do the dirty code modifications for you. Including assigning random ports to child process, while validating that these are free.

##Simple usage The following usage should be enough to most projects.

    const childProcessExecArgv = require('child-process-exec-argv');

    const subprocess = require('child_process').fork('subprocess.js' , [] , {
        execArgv : await childProcessExecArgv.getExecArgv()
    });

If you must have sync result you can use the sync methods, just know that the async method will validate that the random port is valid, while sync method cannot.

    const childProcessExecArgv = require('child-process-exec-argv');

    const subprocess = require('child_process').fork('subprocess.js' , [] , {
        execArgv : childProcessExecArgv.syncGetExecArgv()
    });

##Advanced usage This module come with some customization to enable usage to varity of integrations.

When requiring the main module you will recive a singlton for your convince , you can also you create a custome instance for better encapsulation/customization.

By default this module will identify the current process is being debugged and will request debugging on the child process. You can overide this behavior by:

  • Excuting the main process with child-debugger=disabled.
  • Modifing the singlton property childProcessExecArgv.childDebuggble = false
  • By creating a custome childProcessExecArgv.

###Create a custome childProcessExecArgv

    const {ChildProcessExecArgv} = require('child-process-exec-argv');
    const childProcessExecArgv = new ChildProcessExecArgv();

    //For example disable debugging only for this process
    childProcessExecArgv.childDebuggble = false;

    const subprocess = require('child_process').fork('subprocess.js' , [] , {
        execArgv : await childProcessExecArgv.getExecArgv()
    });

##How to debug forked process in visual studio code Altough visual studio code comes with a built in support for identifying child process and attaching to them, in some cases it will not manage the ports correctly.

The following changes will help you gainning child process debugging.

Add to your current process in launch.json the following paramter:

 "autoAttachChildProcesses": true

Take exec argv for this module and forward it to the fork function

    const childProcessExecArgv = require('child-process-exec-argv');

    const subprocess = require('child_process').fork('subprocess.js' , [] , {
        execArgv : await childProcessExecArgv.getExecArgv()
    });

Happy debugging!

##Debug with WebStorm Webstorm is doing a great job with debugging child processes, altough possible to use both we didn't find a reason to use this module while using webstorm.

License

MIT