在gulp构建期间将git提交哈希添加到javascript变量

9fkzdhlc  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(126)

我正在使用gulp来构建我的angularjs应用程序,并希望以某种方式将最新的git commit hash注入到我的angular应用程序中,这样我就可以在调试生产问题时使用它。
即使只是将它作为全局变量注入到我的index.html模板中,也是很好的。
有谁能推荐一个好的技术和插件来实现这一点吗?

ngynwnxp

ngynwnxp1#

最后我使用了git-rev-syncgulp-replace,并将{{git}}放入index.html源文件中。

var git = require('git-rev-sync');

return gulp.src(pathConfig.src + 'index.html')
    .pipe($.replace('{{git}}', git.long()))
    .pipe(gulp.dest(pathConfig.dest + 'index.html'));
kadbb459

kadbb4592#

插入最新的git提交哈希
以下是您可以执行此操作的方法:
git在.git/refs/heads/<branch name>中存储最新的提交哈希。
使用下面的代码读取文件的内容,然后将其放在需要的位置

# load fs for reading /writing files
fs = require("fs"),

// define your task 
gulp.task('doSometing', function() {

  return gulp.src(dirs.src + '/templates/*.html')

    // read the  SHA-1 of the latest commit
    .pipe(fs.readFile("path/to/.git/refs/heads/<branch name>", 

          // Default encoding for fs is binary so we have to set it to UTF-8      
          "utf-8", 

          // Process the data you have read (SHA-1)
          function(err, _data) {
          //do something with your data
    })
   .pipe(gulp.dest('destination/path));
});
gojuced7

gojuced73#

对于那些不使用jQuery的人,通过@ the-a-train来跟进答案。

var git = require('git-rev-sync');
var replace = require('git-replace');

return gulp.src(pathConfig.src + 'index.html')
  .pipe(replace('{{git}}', git.long()))
  .pipe(gulp.dest(pathConfig.dest + 'index.html'));

相关问题