2014-11-21 65 views
3

我的目標是將最新的git commit添加到我的index.html文件中。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

回答

5

當然,您可以將回調方法添加到您的哈希任務,以便您可以將結果保存到變量中,以用於您的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')); 
}); 
+0

太好了,謝謝。在結束標籤後面添加HTML註釋是否有任何問題?我知道舊版IE不喜歡,但我不知道它有什麼問題。 – mcranston18 2014-11-24 02:04:30

+0

哦,如果它是*評論*我認爲它應該可以。 :-)然後,在關閉正文標籤之後,評論應該也很好。 – Ben 2014-11-24 09:02:54

相關問題