javascript - 将参数传递给节点中的 execFile
问题描述
我正在尝试使用他们的二进制文件连接到 browserstack 并将我的密钥作为参数传递。如果我在终端窗口中执行此操作:
./BrowserStackLocal --key ${BROWSERSTACK_KEY}
连接成功,我的密钥按预期传递。但是我希望使用 execFile 通过节点运行这个二进制文件。下面是我的代码
const { execFile } = require('child_process');
function getConnection() {
execFile('./BrowserStackLocal', ['--key ${BROWSERSTACK_KEY}'], (err, stdout, stderr) => {
if (err) {
console.log(err);
} else
console.log(stdout);
});
}
但是,当我运行我的函数时,我得到以下信息:
BrowserStackLocal v7.1 *** Error: Atleast one argument is required! To test an internal server, run: ./BrowserStackLocal --key <KEY> Example: ./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 To test HTML files, run: ./BrowserStackLocal --key <KEY> --folder <full path to local folder> Example: ./BrowserStackLocal --key DsVSdoJPBi2z44sbGFx1 --folder /Applications/MAMP/htdocs/example/
所以它看不到我的钥匙。我在这里遵循了指南:https ://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback我以为我以正确的方式传递了参数,但我显然做错了。有人可以帮我吗?谢谢!
解决方案
该数组['--key ${BROWSERSTACK_KEY}']
将一个包含空格的命令行参数传递给进程。要传递两个命令行参数(它可能期望的),请使用两个字符串:
execFile('./BrowserStackLocal', ['--key', '${BROWSERSTACK_KEY}'], ...
我想${BROWSERSTACK_KEY}
这只是您在实际密钥问题中的占位符......
推荐阅读
- javascript - Nodemailer不发送消息
- image-processing - CNN 模型如何预测原始(大)图像?
- android - 尝试将计步器(计步器)添加到 android 应用程序,但它不工作
- firefox - 如何绕过 Firefoxe 的浏览器调试安全性?
- html - 在 Microsoft Edge 中禁用 html5 视频自动播放
- c# - 如何在 c# 中使用 OLEDB 将混合数据类型数据表写入 EXCEL
- apache - Http 到 Https 重定向问题。需要澄清一下
- css - 产品页面上的产品评论选项卡在移动显示上被切断。电子商务
- windows - Git Credential Manager 弹出窗口直到命令被取消后才会显示。未存储凭据
- python - matplotlib 多系列线图数据框