Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从VSCode扩展执行本地bash代码_Javascript_Bash_Typescript_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Javascript 如何从VSCode扩展执行本地bash代码

Javascript 如何从VSCode扩展执行本地bash代码,javascript,bash,typescript,visual-studio-code,vscode-extensions,Javascript,Bash,Typescript,Visual Studio Code,Vscode Extensions,我正在为简单的git命令创建一个扩展,当用户在命令面板中输入命令时,如Init,我想在其当前目录上调用git Init 不幸的是,没有关于使用VSCodeExtensionsAPI在本地执行代码的文档。有什么方法可以做到这一点吗?是的,这是可能的,通过使用。我已经用过了。执行的核心如下所示: let spawnOptions = { cwd: options.baseDir ? options.baseDir : undefined }; let java = child_process.spa

我正在为简单的git命令创建一个扩展,当用户在命令面板中输入命令时,如
Init
,我想在其当前目录上调用
git Init


不幸的是,没有关于使用VSCodeExtensionsAPI在本地执行代码的文档。有什么方法可以做到这一点吗?

是的,这是可能的,通过使用。我已经用过了。执行的核心如下所示:

let spawnOptions = { cwd: options.baseDir ? options.baseDir : undefined };
let java = child_process.spawn("java", parameters, spawnOptions);

let buffer = "";
java.stderr.on("data", (data) => {
    let text = data.toString();
    if (text.startsWith("Picked up _JAVA_OPTIONS:")) {
        let endOfInfo = text.indexOf("\n");
        if (endOfInfo == -1) {
            text = "";
        } else {
            text = text.substr(endOfInfo + 1, text.length);
        }
    }

    if (text.length > 0) {
        buffer += "\n" + text;
    }
});

java.on("close", (code) => {
    // Handle the result + errors (i.e. the text in "buffer") here.
}