javascript - 使用 NPM ShellJS 在 Node 中执行 Git 命令返回 `stdout` 内的空字符串

标签 javascript node.js git shelljs

我正在使用 NPM ShellJS在 Node 脚本中执行以下 Git 命令:

git for-each-ref --sort=v:refname --format "tag: %(refname:strip=2) message: %(subject) date: %(authordate:iso)"refs/标签

如果我在普通命令行窗口中运行此命令,它会完美运行并产生类似于以下的输出:

tag: v2.20.0-rc0 message: Git 2.20-rc0 date: 2018-11-18 18:25:38 +0900
tag: v2.20.0-rc1 message: Git 2.20-rc1 date: 2018-11-21 23:25:15 +0900
tag: v2.20.0-rc2 message: Git 2.20-rc2 date: 2018-12-01 21:45:08 +0900

但是,当我使用 ShellJS 在 Node 中运行此命令时,stdout 的内容是一个空字符串:

const shell = require('shelljs');

let tagInfo = shell.exec(`
  git for-each-ref --sort=v:refname --format "tag: %(refname:strip=2) message: %(subject) date: %(authordate:iso)" refs/tags
`);

console.log('tagInfo', tagInfo.stdout); // empty string

如何获得指定的输出,而不是空字符串?

最佳答案

在您的情况下,您使用的是多行字符串 - 这不太正确。 尝试提供一个字符串(在一行中):

let tagInfo = shell.exec(`git for-each-ref --sort=v:refname --format "tag: %(refname:strip=2) message: %(subject) date: %(authordate:iso)" refs/tags`);

关于javascript - 使用 NPM ShellJS 在 Node 中执行 Git 命令返回 `stdout` 内的空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073128/

相关文章:

javascript - 如何在连续视频流帧上使用 Seriously.js 差异混合效果

javascript - 如何防止空白页对HTTP错误使用react

javascript - 用于使用游标对 api 进行分页的 Axios 递归

node.js - Mocha 超测ECONNRESET

node.js - Electron app.on ('ready' ...永远不会被调用并且永远不会显示 Electron 窗口。似乎与特定的 Git 存储库相关联

git - 推送到远程 Git 存储库时出错

javascript - 对象未出现在 Canvas 主体负载上

javascript - 如何在 Node.js 中导入文件?

node.js - Passport 获取刷新 token OAuth

git - 将更改推送到原点(上游)后如何将更改推送到另一个 Remote ?