【问题标题】:Grunt-shell save command output as variableGrunt-shell 将命令输出保存为变量
【发布时间】:2015-02-10 11:03:36
【问题描述】:

我正在使用 Grunt 和 Grunt-shell 来构建/部署我的 Javascript 项目。

我想获取最新的 git-commit 编号并将其存储为变量,但不知道如何操作。 我尝试过回调并设置全局变量。这个变量在函数中可用,但似乎不能在另一个块中使用

grunt.initConfig({
...
shell: {
      getGitCommitNo: {
        command: 'git rev-parse --short HEAD',
        options: {
          callback: function (err, stdout, stderr, cb) {
              global['gitCommitNo'] = stdout;
              grunt.log.ok(global.gitCommitNo);
              cb();
            }
        }
      },
      philTest: {
         command: 'echo Git Commit No: ' +  global.gitCommitNo
      },
...
}

输出:

>> Starting deployment process for version 1.1 in dev environment

Running "shell:getGitCommitNo" (shell) task
bfc82a9
>> bfc82a9

Running "shell:printTest" (shell) task
Git Commit No: undefined

Done, without errors.

谁能建议我如何将命令行的输出保存到可用的变量中?

【问题讨论】:

  • 不确定您是否可以使用shell 插件来做到这一点,但如果需要,您可以编写一个简单的自定义模块来做到这一点。

标签: git gruntjs grunt-shell


【解决方案1】:

发现我实际上可以在回调中使用配置变量(而不是全局变量)来做到这一点。 (注意下面的行也删除了换行符)。

grunt.config.set('gitCommitNo', stdout.replace('\n', '')); 

然后可以使用:

<%=gitCommitNo%>

【讨论】:

  • 这应该被标记为正确答案。非常感谢。
  • 注意:我必须将 grunt.loadNpmTasks('grunt-shell') 放在我的 Grunt 文件的顶部,上方 grunt.initConfig({...,这样才能正常工作
猜你喜欢
  • 2018-11-06
  • 2011-12-31
  • 2010-12-24
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 2022-10-21
  • 1970-01-01
  • 2018-01-18
相关资源
最近更新 更多