我有一个运行 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
答案 0 :(得分:0)
通过改变环境中的路径来解决
以下是完整的解决方案
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']
});