node spawn_child 使用不同的节点版本

node spawn_child to use different node version

我有一个 运行s Webdriver 测试的节点脚本。我正在使用以下代码

const procInfo = child_process.spawn('wdio',
    0,
    pathModule.join(downloadDir, 'node_modules', '.bin', IsWin32 ? 'wdio.cmd' : 'wdio'),
    args, {
    cwd: downloadDir,
    env: env,
    detached: !IsWin32,
    stdio: ['ignore', 'pipe', 'pipe']
  });

我也安装了 nvm。我的主要进程是从节点 v14 开始的。我想让用户从界面中决定他们想要哪个节点版本运行。

如何让 child_process 使用不同版本的节点,如 v10

通过更改环境中的路径解决了它

下面是完整的解决方案


const IsWin32 = process.platform === 'win32';


const env = process.env;
  if(IsWin32)
    env.Path = '/home/testable/.nvm/versions/node/v10.24.1/bin' + pathModule.delimiter + env.Path;
  else
    env.PATH = 'C:\ProgramData\nvm\v10.24.1\' + pathModule.delimiter + env.PATH;

const procInfo = child_process.spawn('wdio',
    0,
    pathModule.join(downloadDir, 'node_modules', '.bin', IsWin32 ? 'wdio.cmd' : 'wdio'),
    args, {
    cwd: downloadDir,
    env: env,
    detached: !IsWin32,
    stdio: ['ignore', 'pipe', 'pipe']
  });