Giter VIP home page Giter VIP logo

Comments (10)

misteroneill avatar misteroneill commented on May 15, 2024

Confirming that I'm seeing this on any script that uses npm-run-all, but running the scripts individually has no issues.

from npm-run-all.

alicoding avatar alicoding commented on May 15, 2024

I'm seeing the same problem here. It looks like this happened after the code refractor patch...

from npm-run-all.

janl avatar janl commented on May 15, 2024

Seeing this too. Confirmed that it is past 8004ce4 (“Refactoring”).

I’ve traced it down to stdout/err problems. When I added a fs.createWriteableStream() to the options passed to spawn() in spawn-posix.js (e.g. log stdout/err into files). Things work as expected.

Do this in spawn-posix.js if you want to reproduce:

function spawn(command, args, options) {
    var fs = require('fs')
    var ofd = fs.openSync('npm-run-all.stdout', 'w')
    var efd = fs.openSync('npm-run-all.stderr', 'w')
    var out = fs.createWriteStream('', {fd: ofd, flags:'w'});
    var err = fs.createWriteStream('', {fd: efd, flags:'w'});

    options.detached = true; // eslint-disable-line no-param-reassign
    options = {
      stdio: [options.stdio[0], out, err]
    }
    console.log(command, args, options);
    var child = _child_process2["default"].spawn(command, args, options);
    child.on("exit", removeFromPool);
    child.on("error", function(error) {
      console.log(error);
      removeFromPool()
    });
    child.kill = kill;

    // Add to the pool to kill on exit.
    children.push(child);

    return child;
}

Good luck with this one <3

from npm-run-all.

janl avatar janl commented on May 15, 2024

And again as a diff, if that’s easier, full commit here: janl@2889479 branch here: https://github.com/janl/npm-run-all/tree/issue/14

diff --git a/src/lib/spawn-posix.js b/src/lib/spawn-posix.js
index c04abc1..8f10254 100644
--- a/src/lib/spawn-posix.js
+++ b/src/lib/spawn-posix.js
@@ -48,8 +48,18 @@ function kill() {
  * @returns {ChildProcess} A ChildProcess instance of new process.
  * @private
  */
+
+var fs = require('fs')
 export default function spawn(command, args, options) {
+    var ofd = fs.openSync('npm-run-all.stdout', 'w')
+    var efd = fs.openSync('npm-run-all.stderr', 'w')
+    var out = fs.createWriteStream('', {fd: ofd});
+    var err = fs.createWriteStream('', {fd: efd});
+
     options.detached = true; // eslint-disable-line no-param-reassign
+    options = {
+      stdio: [options.stdio[0], out, err]
+    }

     const child = cp.spawn(command, args, options);
     child.on("exit", removeFromPool);

from npm-run-all.

mysticatea avatar mysticatea commented on May 15, 2024

Oh my God, I apologize for it.
For a first aid, I reverted to v1.2.13 and published as v1.3.1.

My bad, I had not been having tests for stdin/stdout, so these were not tested in Travis CI.

from npm-run-all.

mysticatea avatar mysticatea commented on May 15, 2024

@janl Thank you for investigating.

Hmm, I seem to need changing my strategy that I use process group id to kill child processes.

from npm-run-all.

mysticatea avatar mysticatea commented on May 15, 2024

Hmm, I'm trying to add tests for this bug, but it works in Travis CI...
This might be related with nodejs/node#3596

from npm-run-all.

e-jigsaw avatar e-jigsaw commented on May 15, 2024

@mysticatea Thanks for great support!

from npm-run-all.

misteroneill avatar misteroneill commented on May 15, 2024

👍

from npm-run-all.

janl avatar janl commented on May 15, 2024

nice! <3

from npm-run-all.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.