我有一个运行cmd
的bash脚本,它将一些东西输入到Windows下的Node.js可执行文件中。像这样:
$ /mnt/c/Windows/System32/cmd.exe /C "echo console.log('hi') | node"
是的,这很难看。但直到最近才完美地运作。我认为实际的主要Windows更新打破了这些东西,现在我从Node得到了以下错误:
Error: EINVAL: invalid argument, uv_pipe_open
at new Socket (net.js:200:18)
at createWritableStdioStream (internal/process/stdio.js:164:16)
at process.getStdout [as stdout] (internal/process/stdio.js:14:14)
at console.js:243:38
at NativeModule.compile (bootstrap_node.js:596:7)
at Function.NativeModule.require (bootstrap_node.js:541:18)
at setupGlobalConsole (bootstrap_node.js:310:41)
at startup (bootstrap_node.js:70:7)
at bootstrap_node.js:608:3
请注意,如果我在没有管道到节点的情况下从Linux调用脚本,或者如果我从Windows调用echo-pipe-to-node,那么它可以工作。但如果我想运行一个从bash管道进入Node的cmd,它会崩溃。有任何想法吗?
BTW这个Linux子系统是一个非常酷的东西。 :d