3

我的目标是将最新的 git commit 附加到我的index.html文件中。

以下任务成功返回最新的 git 哈希(使用gulp-git):

var git = require('gulp-git');
gulp.task('hash', function() {
   git.revParse({args:'--short HEAD'}, function (err, hash) {
     return hash;
   });
});

以下任务构建我的 HTML:

var inject = require('inject-string');
gulp.task('html', function () {
  return gulp.src('app/index.html')
    .pipe(inject.append('append git hash here!'))
    .pipe(gulp.dest('dist'))
});

这成功地附加了一个字符串,index.html但我如何将hash任务的返回值注入到html

4

1 回答 1

6

当然,您可以向哈希任务添加回调方法,以便可以将结果保存到变量中,以便在 html 任务中使用。html 任务也应该将哈希任务作为依赖项,以便哈希永远不会未定义。此外,您可能应该使用gulp-cheerio之类的东西将散列注入输出,这样您就不会将散列附加到结束 html 标记之外。

var gulp = require('gulp'),
    git  = require('gulp-git'),
    cheerio = require('gulp-cheerio');

var gitHash;

gulp.task('hash', function(cb) {
  return git.revParse({args:'--short HEAD'}, function(err, hash) {
     gitHash = hash;
     cb();
   });
});

gulp.task('html', ['hash'], function() {
  return gulp.src('app/index.html')
    .pipe(cheerio(function($) {
        $('body').append('<p>' + gitHash + '</p>');
    }))
    .pipe(gulp.dest('dist'));
});
于 2014-11-23T01:01:04.193 回答