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']
});
我有一个 运行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']
});