我正在为简单的git命令创建扩展,当用户在命令面板中输入命令时,例如Init
,我想在其当前目录中调用git init
。
不幸的是,没有关于使用VSCode扩展API在本地执行代码的文档。有什么办法吗?
答案 0 :(得分:2)
是的,可以通过使用child_process.spawn来实现。我已使用它in my extension to run a Java jar。执行的核心如下所示:
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.
}