小编Iva*_*res的帖子

在grunt.util.spawn中调用grunt.config.set似乎没有任何效果

我正在尝试在我的项目的Grunt配置中设置当前的Git SHA,但是当我尝试从另一个任务访问它时它不可用,我缺少什么?

grunt.registerTask('sha', function () {
  var done   = this.async();

  grunt.util.spawn({
    cmd: 'git',
    args: ['rev-parse', '--short', 'HEAD']
  }, function (err, res) {
    if (err) {
      grunt.fail.fatal(err);
    } else {
      grunt.config.set('git', {sha: res.stdout});
      if (grunt.option('debug') || grunt.option('verbose')) {
        console.log("[sha]:", res.stdout);
      }
    }
    done();
  });
});
Run Code Online (Sandbox Code Playgroud)

运行任务后,我希望配置在另一个任务配置中可用:

requirejs: {
  dist: {
    ...
    out: '<%= app.dist %>/scripts/module_name.<%= git.sha %>.js'
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

所以有什么问题?

问题是Require JS正在写入文件public/scripts/module_name..js,SHA在配置中不可用(文件名应该是public/scripts/module_name.d34dc0d3.js).

更新:

问题是我正在运行requirejs任务grunt-concurrent,因此Grunt配置不可用requirejs.

grunt.registerTask('build', [
  ...
  'getsha',
  'concurrent:dist',
  ... …
Run Code Online (Sandbox Code Playgroud)

javascript spawn node.js gruntjs

2
推荐指数
1
解决办法
939
查看次数

标签 统计

gruntjs ×1

javascript ×1

node.js ×1

spawn ×1