0

我如何在脚本本身内更改环境,以便其他后续代码将忽略调用环境的状态并认为环境是我设置的。

4

1 回答 1

0

我不确定您所说的“成功代码”是什么意思。

如果您的意思是“在同一个节点进程中”,这很容易:

// process.env.PATH = 'foobar';
require('child_process').exec('ls', function(err, result) {
  if (err)
    console.log('error', err);
  else
    console.log('ls', result);
});

试试这个脚本,首先注释掉第一行,它会工作得很好。之后,删除注释,以便 PATH 被废话覆盖,并且exec将失败,因为它无法ls在您的 PATH 中找到该命令。

如果您的意思是“对于任何后续节点进程,我可能会在我的第一个脚本之后启动”,这是不可能的,因为这些后续进程的父进程是您的 shell 而不是您的脚本。子进程不能改变其父进程的环境。

于 2013-05-24T16:06:30.667 回答