2015-02-10 19 views
6

Javascript projemi oluşturmak/dağıtmak için Grunt ve Grunt-shell kullanıyorum.Grunt-shell kayıt komutunun çıkışını değişken olarak

En son git-commit numarasını almak ve bunu değişken olarak saklamak istiyorum ancak nasıl yapacağınızı çözemiyorum. Bir geri arama yapıp global bir değişken ayarlamayı denedim. Bu değişken ancak öyle görünüyor başka blokta içinden bir işlev içinde kullanılabilir olan

grunt.initConfig({ 
... 
shell: { 
     getGitCommitNo: { 
     command: 'git rev-parse --short HEAD', 
     options: { 
      callback: function (err, stdout, stderr, cb) { 
       global['gitCommitNo'] = stdout; 
       grunt.log.ok(global.gitCommitNo); 
       cb(); 
      } 
     } 
     }, 
     philTest: { 
     command: 'echo Git Commit No: ' + global.gitCommitNo 
     }, 
... 
} 

Çıktı:

>> Starting deployment process for version 1.1 in dev environment 

Running "shell:getGitCommitNo" (shell) task 
bfc82a9 
>> bfc82a9 

Running "shell:printTest" (shell) task 
Git Commit No: undefined 

Done, without errors. 

kimse ben kullanışlı olan bir değişkene bir komut satırının çıktısını kaydetmek nasıl önerebilir Lütfen?

+0

emin değil, ancak gerekirse bunu yapmak için basit bir özel modülü yazabiliriz:

grunt.config.set('gitCommitNo', stdout.replace('\n', '')); 

O zaman bu aracılığıyla ulaşılabilir. – jakerella

cevap

10

Bunu, geri aramada bir yapılandırma değişkeni (global yerine) kullanarak yapabileceğimi öğrendim. (Çizginin altındaki not ayrıca yeni satırı kaldırır). Eğer `shell` eklenti ile yapabilirsiniz

<%=gitCommitNo%> 
+0

Doğru cevap olarak işaretlenmelidir. Bunun için çok teşekkürler. –

+0

NOT: Grunt dosyamın üstüne ** grunt.loadNpmTasks ('grunt-shell') 'yerleştirmeliydim, ** yukarıdaki ** grunt.initConfig ({...', bunun çalışması için –

İlgili konular