我正在尝试在我的项目的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)