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の戻り値をどのように挿入しますか?hashhtml

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 に答える