node.js - 节点 spawn_child 使用不同的节点版本
问题描述
我有一个运行 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']
});
推荐阅读
- python-3.x - 我创建了一个太空入侵者游戏,并希望使用 Flask 使其在线。这是一个合适的方法吗?
- php - 在 WooCommerce 客户订单详细信息页面中添加并保存文本字段
- node.js - Mongoose 不为子文档生成 _id
- javascript - 如何更新 html/js 中的表格?
- r - 计算特定列中的重复次数
- aem - 安装 Service Pack 后,AEM 上的站点页面无法打开?
- json - 如何在python中使用pandas从动态JSON对象中获取所有键
- amazon-web-services - 我可以通过 localhost 在 EC2 实例上访问通过 Amazon ECS (docker) 运行的应用程序吗?
- python - discord.py 赋予角色问题
- sql - SQL:如何在元组中查找相似的字符串