在node / io.js中,默认情况下,调用child_process.exec()
会导致子进程继承父进程的所有环境变量。据我了解,这是Windows的正常行为。 CreateProcess功能。
但是,这对我来说是个问题,因为父进程(Atom) by default sets NODE_ENV
to production
在泄露给子进程(例如终端应用程序)时会导致下游出现模糊的,有时甚至是严重的问题。
我能想到的唯一两种可能的解决方案是将env
选项参数的exec()
键设置为:
APPDATA
,导致下游出现更多问题。process.env
的副本,其中根据需要删除或修改有问题的变量。工作,但无法知道这些变量的先前值是什么,所以很可能会破坏原始值。node / io.js中是否有一种方法可以确保子进程不继承父进程的环境变量,但仍然拥有所有当前用户的环境变量(例如{{1} })?
在Atom 1.0.2的嵌入式io.js(1.5.1),Windows 7 SP1 64位下运行。