当我从parent.js
文件中运行
child_process.spawn('node', ['child.js']);
我知道parent.js
中设置的所有环境变量也在child.js
中设置。现在,虽然我知道我可以使用env属性添加环境变量:
child_process.spawn('node', ['child.js'], {env: {newenv: 'newvalue'}});
如何删除一个?例如,假设process.env['parentonly']
中设置了一些parent.js
环境变量,并且我不希望它通过child.js
转发到spawn
。我怎么能这样做?
我试过
child_process.spawn('node', ['child.js'], {env: {parentonly: /* anything like 0, false, null, undefined here.*/}});
但这不起作用。如果在parent.js
我明确地做了
delete process.env['parentonly'];
然后在parentonly
中没有设置child.js
,但这是轻微侵入性的。有没有解决方法呢?
答案 0 :(得分:0)
这是我的方式。 创建一个对象,克隆父env。 (定义您自己的克隆方法,过滤掉您不想从父env复制的任何属性) 然后将新对象作为子环境传递给子进程。