-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Have child_process.exec
support the input
and stdio
options, like execSync
does
#45306
Comments
Duplicate of #25231 |
input option added to spawn, exec and execFile. tests and documentation updated Fixes: nodejs#45306 Fixes: nodejs#25231
There has been no activity on this feature request for 5 months and it is unlikely to be implemented. It will be closed 6 months after the last non-automated comment. For more information on how the project manages feature requests, please consult the feature request management document. |
There has been no activity on this feature request and it is being closed. If you feel closing this issue is not the right thing to do, please leave a comment. For more information on how the project manages feature requests, please consult the feature request management document. |
I am looking for a promise-based alternative to
=> This ticket isn't justified in my opinion, and should be reopened. |
See the other issue. There's no point in reopening this one because, to summarize, there's no consensus on how or if this should be added. |
@bnoordhuis, just because there's no consensus, it's still a valid problem, so I find your argument non-constructive. Edit: Even though execa is a working alternative for my problem, it's too bad we can't rely on a native function. |
To clarify: If it's not going to happen, it's not going to happen. No point in having open issues for something that's not going to happen. But if you're just arguing for the sake of arguing, go away. |
I don't do pointless things. I look for solutions. You're rude. I'm trying to make you realize that sometimes it's just better to have something than nothing, otherwise history repeats itself, like it happened with Prettier: prettier/prettier#9561 . it's just crazy how things are handled in the world. I've seen several GitHub/Atlassian issues where people who needed a feature had to wait years, even regardless of how popular the request was. We can't fork everything, constant forking makes things a mess. Yet if it's a common feature it's common sense to want to have it. I believe that similarly, new technologies, libraries, and frameworks emerge every day, but more because there is no consensus on how to do things, than because of natural evolution. That is everything but practical. Having said that, I understand that this comment probably won't change a thing. So yes, sadly but I'll move on. |
Rest assured that the people working on this project think about that a lot more than you do, random commenter from the internet peanut gallery, and sometimes the conclusion is that in fact, no, it's better to have nothing than something that's bad. |
There was never any doubt you understand the internals of your project more than I do, and that shouldn't be the debate here. I was wrong though: whether it is better or not to have something than nothing is actually a classic debate between iterative mindset and maintaining quality. Its two extremes are rash decision-making and analysis paralysis, neither of which are good for the users in long term. The middle ground is however are also well practiced on the Internet: clearly marked experimental or beta features. Maybe that idea cannot be applied exactly to this problem, or isn't worth the effort. Not for me to decide, as you said, I'm just a random commenter. Please note though that calling people one is getting a bit close to being rude again: getting personal is some form of manipulation. I don't want to be the enemy here. If I was harsh in some way then sorry. As I promised, I'm moving on. |
What is the problem this feature will solve?
The documentation for
child_process.execSync
says:But in fact it introduces a number of extra options (
input
,stdio
) that are for some reason not supported byexec
, even though there is no obvious reason why they would not be useful there.What is the feature you are proposing to solve the problem?
When rewriting synchronous code as asynchronous, it should be possible to replace
execSync
calls withexec
calls (and add suitable machinery to detect child process completion), but failing to support the very common{stdio: 'inhert'}
option makes this much more difficult than it should be.There seems to be no fundamental reason why the
stdio
option cannot be supported, becausespawn
supports it while also being async.What alternatives have you considered?
It is possible to add suitable event handlers to copy from the child process to stdout, but this is non-trivial and is not the same as inheriting stdiout (e.g. it breaks tty detection).
child_process.spawn
is a usable alternative that does support{stdio: 'inherit'}
, but it requires refactoring the arguments into a separate array, which is inconvenient.The text was updated successfully, but these errors were encountered: