将参数传递给节点中的 execFile

Passing arguments to execFile in node

我正在尝试使用他们的二进制文件连接到 browserstack 并将我的密钥作为参数传递。如果我在终端 window:

中执行此操作
./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}'] 将包含 space 的 单个 命令行参数传递给进程。要传递 两个 命令行参数(它可能期望的),请使用两个字符串:

execFile('./BrowserStackLocal', ['--key', '${BROWSERSTACK_KEY}'], ...

我认为 ${BROWSERSTACK_KEY} 只是您在实际密钥问题中的占位符...