Ana içeriğe geç

Görev API'si

Kayıt yapın, dış görevleri çalıştırın ve yükleyin.

Daha fazla bilgi için görev lib kaynak ve görev util lib kaynak sayfasına bakın.

Görev API'si

Bir görev çalışırken, Grunt birçok görev özel yardımcı özellik ve metodunu görev fonksiyonu içinde this nesnesi aracılığıyla açıklar. Bu özellik ve metodların bir listesini görmek için [[Görevler İçinde]] kılavuzuna bakın.

Görevlere this nesnesi aracılığıyla birçok yardımcı özellik ve metod erişilebilir.

bilgi

☃ (unicode kar adam) ile işaretlenen herhangi bir metodun grunt nesnesi üzerinde doğrudan erişilebilir olduğunu unutmayın. Bilginiz olsun. Daha fazla kullanım bilgisi için API ana sayfasına bakın.

Görevler Oluşturma

grunt.task.registerTask ☃

Bir "takma görev" veya görev fonksiyonu kaydedin. Bu metod aşağıdaki iki imzayı destekler:

Takma görev

Bir görev listesi belirtilmişse, yeni görev bir veya daha fazla diğer görev için bir takma isim olacaktır. Bu "takma görev" çalıştığında, taskList içinde belirtilen her görev, belirtilen sırayla çalıştırılacaktır. taskList argümanı bir görevler dizisi olmalıdır.

grunt.task.registerTask(taskName, taskList)

Opsiyonel description dizesi geçirildiğinde, grunt --help çalıştırıldığında görüntülenecektir:

grunt.task.registerTask(taskName, description, taskList)

Bu örnek takma görev, Grunt belirtilen hiçbir görev olmadan çalıştırıldığında "jshint", "qunit", "concat" ve "uglify" görevlerinin otomatik olarak çalıştığı bir "varsayılan" görev tanımlar: — Grunt Belgeleme

task.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);

Görev argümanları da belirtilmelidir. Bu örnekte, "dist" takma ismi "concat" ve "uglify" görevlerini "dist" argümanı ile çalıştırır:

task.registerTask('dist', ['concat:dist', 'uglify:dist']);

Fonksiyon görevi

Eğer description ve taskFunction geçirilirse, belirtilen fonksiyon, görev çalıştırıldığında yürütülür. Ayrıca, belirtilen açıklama grunt --help çalıştırıldığında gösterilecektir. Görev özel özellikleri ve metodları görev fonksiyonu içinde this nesnesinin özellikleri olarak mevcuttur. Görev fonksiyonu, görevin başarısız olduğunu göstermek için false döndürebilir.

Aşağıda açıklandığı gibi grunt.task.registerMultiTask metodu, "çoklu görev" olarak bilinen özel bir görev tanımlamak için kullanılabilir.

grunt.task.registerTask(taskName, description, taskFunction)

Bu örnek görev, Grunt grunt foo:testing:123 ile çalıştırıldığında foo, testing 123 yazdırır. Eğer görev grunt foo olarak, argüman olmadan çalıştırılırsa görev foo, no args yazdırır.

grunt.task.registerTask('foo', 'Bir şeyleri yazdıran örnek görev.', function(arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeln(this.name + ", no args");
} else {
grunt.log.writeln(this.name + ", " + arg1 + " " + arg2);
}
});
ipucu

Daha fazla görev ve takma görev örneği için görevler oluşturma belgesine bakın.

Bu metod ayrıca grunt.registerTask olarak da mevcuttur.

grunt.task.registerMultiTask ☃

"Çoklu görev" kaydedin. Çoklu bir görev, belirli bir hedef belirtilmemişse tüm adlandırılmış alt özellikleri (AKA hedefleri) üzerinde dolaylı olarak yinelemeler yapar. Varsayılan özellikler ve metodların yanı sıra, görev fonksiyonu içinde this nesnesinin özellikleri olarak ek çoklu görev özel özellikleri mevcuttur.

Birçok katkı görevi, jshint görevi, concat görevi ve uglify görevi gibi, çoklu görevlerdir.

grunt.task.registerMultiTask(taskName, description, taskFunction)

Belirtilen yapılandırmaya göre, bu örnek çoklu görev grunt log:foo ile çalıştırıldığında foo: 1,2,3 yazdırır, veya grunt log:bar ile çalıştırıldığında bar: hello world yazdırır. Ancak grunt log olarak çalıştırıldığında, önce foo: 1,2,3, sonra bar: hello world, ardından baz: false yazdırılır.

grunt.initConfig({
log: {
foo: [1, 2, 3],
bar: 'hello world',
baz: false
}
});

grunt.task.registerMultiTask('log', 'Şeyleri yazdır.', function() {
grunt.log.writeln(this.target + ': ' + this.data);
});
tehlike

Daha fazla çoklu görev örneği için görevler oluşturma belgesine bakın.

Bu metod ayrıca grunt.registerMultiTask olarak da mevcuttur.

grunt.task.requires

Başka bir görev başarısız olursa veya hiç çalışmazsa görevi başarısız kılın.

grunt.task.requires(taskName);

grunt.task.exists

0.4.5'te eklendi

Belirli bir isimle kayıtlı görevlerden birinin var olup olmadığını kontrol edin. Boolean bir değer döndürür.

grunt.task.exists(name)

grunt.task.renameTask ☃

Bir görevi yeniden adlandırın. Bu, bir görevin varsayılan davranışını geçersiz kılmak istediğinizde, eski ismi korurken faydalı olabilir.

Eğer bir görev yeniden adlandırılmışsa, this.name ve this.nameArgs özellikleri buna göre değişecektir.

grunt.task.renameTask(oldname, newname)

Bu metod ayrıca grunt.renameTask olarak da mevcuttur.

Harici Olarak Tanımlanan Görevlerin Yüklenmesi

Çoğu proje, görevleri Gruntfile içinde tanımlar. Daha büyük projeler için veya görevlerin projeler arasında paylaşılması gerektiğinde, görevler bir veya daha fazla harici dizinden veya Npm ile yüklenen Grunt eklentilerinden yüklenebilir.

grunt.task.loadTasks ☃

Belirtilen dizinden, görevle ilgili dosyaları yükleyin, Gruntfile ile göreli. Bu metod, o eklentinin "tasks" alt dizininde yer alan görevle ilgili dosyaları yüklemek için kullanılabilir.

grunt.task.loadTasks(tasksPath)

Bu metod ayrıca grunt.loadTasks olarak da mevcuttur.

grunt.task.loadNpmTasks ☃

Belirtilen Grunt eklentisinden görevleri yükleyin. Bu eklenti, npm aracılığıyla yerel olarak yüklenmiş olmalı ve Gruntfile ile göreli olmalıdır. Grunt eklentileri, grunt-init gruntplugin şablonunu kullanarak oluşturulabilir: grunt init:gruntplugin.

grunt.task.loadNpmTasks(pluginName)

Bu metod ayrıca grunt.loadNpmTasks olarak da mevcuttur.

Görev Sırasını Oluşturma

Grunt, komut satırında belirtilen tüm görevleri otomatik olarak sıraya alır ve çalıştırır, ancak bireysel görevler ek görevleri sıraya alabilir.

grunt.task.run

Bir veya daha fazla görev sıraya alın. taskList içinde belirtilen her görev, mevcut görev tamamlandığında, belirtilen sırayla hemen çalıştırılacaktır. Görev listesi bir görevler dizisi veya bireysel görev argümanları olabilir.

grunt.task.run(taskList)

grunt.task.clearQueue

Görev kuyruğunu tamamen boşaltın. Ek görevler sıraya alınmamışsa, başka görev çalıştırılmayacaktır.

grunt.task.clearQueue()

grunt.task.normalizeMultiTaskFiles

Bir görev hedef yapılandırma nesnesini bir dizi src-dest dosya eşlemesine normalize eder. Bu metod, çoklu görev sistemi içinde this.files / grunt.task.current.files özelliği tarafından dahili olarak kullanılır.

grunt.task.normalizeMultiTaskFiles(data [, targetname])