pikou1995 / pikou1995.github.io

My Github Page
4 stars 1 forks source link

node child_process.fork execArgv 的问题 #11

Open pikou1995 opened 3 years ago

pikou1995 commented 3 years ago

主进程node -r ts-node/register了,本来以为fork出来的子进程也可以执行ts

const { fork } = require('child_process');
const child = fork('./test.ts', {
    execArgv: ['--inspect'], // 默认是process.execArgv = ['-r', 'ts-node/register'],此处覆盖了
})

所以子进程并不支持直接执行ts文件 于是加上

const { fork } = require('child_process');
const child = fork('./test.ts', {
    execArgv: ['--inspect', '-r', 'ts-node/register'], // 注意此处不能连写,即'-r ts-node/register'会报错。也可以写成'--require=ts-node/register'
})

也可以复用主进程的execArgv

const { fork } = require('child_process');
const child = fork('./test.ts', {
    execArgv: [...process.execArgv, '--inspect'], 
    env: {
        ...process.env,   //  同理,这里也需要看情况加进来
        OTHER_ENV: 'test',
    },
})