Windows + Node.js上的Linux子系统:EINVAL错误

时间:2018-02-07 18:21:35

标签: node.js linux windows pipe windows-subsystem-for-linux

我有一个运行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

0 个答案:

没有答案