使用 ts-node 时通过 fork() 调用子进程

los*_*rje 5 child-process node.js typescript ts-node

我有一个打字稿项目,而不是tsc首先使用,我只是ts-node直接运行通过。

在我的代码中,我需要使用fork().

如果我喜欢运行的代码child_process.fork('ChildProcess.ts'),并ChildProcess.ts包含一些打字稿只有结构(如:import {}export,...),然后解释之中node,而不是ts-node将失败。

可能建议使用类似的东西child_process.exec('node ./node_modules/.bin/ts-node ChildProcess.ts),但我真的想要/需要在父进程和子进程之间设置的 IPC 通信通道,当fork()专门使用时。

关于如何实现这一目标的任何想法?

谢谢!

Est*_*ask 6

正如参考所述,execArgv分叉进程继承自当前进程:

execArgv 传递给可执行文件的字符串参数列表。默认值:process.execArgv。

当入口点运行为:

ts-node index.ts
Run Code Online (Sandbox Code Playgroud)

execArgv默认为ts-node二进制:

[ '...\\ts-node\\dist\\_bin.js' ]
Run Code Online (Sandbox Code Playgroud)

child_process.fork('ChildProcess.ts') 
Run Code Online (Sandbox Code Playgroud)

也运行ts-node