首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Node的API运行git指责

从Node的API运行git指责
EN

Stack Overflow用户
提问于 2022-02-25 21:27:44
回答 1查看 91关注 0票数 0

我正在构建一个VS代码扩展,它作为过程的一部分运行git谴责。

我读到可以使用Node的API从JavaScript执行命令行命令,使用如下所示的子过程

代码语言:javascript
复制
var exec = require('child_process').exec;

        exec(`ls`
        function (error, stdout, stderr) {
            console.log('stdout: ' + stdout);
            console.log('stderr: ' + stderr);
            if (error !== null) {
                 console.log('exec error: ' + error);
            }
        });

运行这个非常简单的ls命令会在控制台中打印出目录。

但是,当我用exec替换exec(ls (git blame -L ${startLine},${endLine} extension.ts)时,它说我不在git存储库中。请注意,从我的实际终端执行git that命令确实有效。

我也试着用sudo运行命令。它会抛出错误

sudo:需要一个终端来读取密码;要么使用-S选项从标准输入读取,要么配置一个askpass助手sudo:需要密码。

/private/var/folders/th/40j77cv1587_zndgl34g0m100000gn/T/AppTranslocation/C0CFF9C7-F5C7-4C37-B7BD-1990096D4E41/d/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-fork.js:5

我能做些什么才能让它发挥作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-26 19:45:51

结果是Node的子进程运行的是根目录上的命令,而不是工作目录。

由于我正在开发VS代码扩展,所以var currentlyOpenTabfilePath = vscode.window.activeTextEditor?.document.uri.fsPath; 解决了它.

值得一提的是,我尝试了不同的事情,但没有奏效。这些措施是:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71271884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档