CoffeeScript'te Cake Kullanmak

İçindekiler
Kahve Komut Dosyası daha iyi JavaScript kodu yazmamızı sağlayan, bu onu birleştiren ve aynı yapı altında çerçeveleyen, JavaScript kodunun oluşturulduğundan emin olacağımız bir dildir. Kahve Komut Dosyası başka bir geliştirici tarafından bizimkiyle aynı olacaktır.
Ama sunduğu tek şey bu değil Kahve Komut Dosyası, ayrıca adı verilen bir araca sahiptir. Kek, projelerimizde bize yardımcı olacak basit görevler tanımlamamıza izin veren Grunt'a benzer, çünkü testleri çalıştırmak için bir göreve veya dosyalarımızı oluşturmak için bir göreve ihtiyacımız olabilir ve tüm bunları Kek adlı bir dosya aracılığıyla kek dosyası.
GereksinimlerBu öğreticiyi tamamlamak için işlevsel bir kuruluma sahip olmalıyız. Kahve Komut Dosyası, ayrıca dosya yazmak ve yürütmek için izinlere ihtiyacımız var Kahve Komut Dosyası öğreticiyi yaptığımız bilgisayarda. Gibi bir metin düzenleyiciye ihtiyacımız var Yüce metin örneklerimizin kodunu yazabilmek ve dilin geçmiş eğitimlerine bakmaktan asla zarar gelmez.
Başlamadan önce yüklememiz gerekmediğini belirtmek önemlidir. Kek, ilk kurulumumuz sırasında Kahve Komut Dosyası araç aynı şekilde kurulur, bu nedenle onunla çalışmaya başlamak için ek bir şey yapmamıza gerek yoktur.
Bunu bilerek çalışmaya başlayabiliriz Kek, ancak oluşturduğumuz tüm görevlerin bir dosyada bulunması gerektiğini anlamalıyız. kek dosyasıolduğundan tam olarak aynı ada sahip olmalıdır. kek dosyası tamamen farklı bir dosya olacak ve derleyici tarafından tanınmayacaktır.
Bu dosya projemizin kökünde olmalı ve içeriğinin sadece kod olması son derece önemlidir. Kahve Komut Dosyası. Bunu temizledikten sonra, ilk görevimizi nasıl oluşturacağımızı görelim. Kek.
adında bir klasör oluşturacağız. cakefile_example ve orada adında bir dosya oluşturacağız kek dosyası.kahve ve aşağıdaki içeriği içerecektir:
 görev "tebrik", "Harika Solvetic topluluğuna merhaba diyelim", -> console.log "Merhaba, Dünya!"
Kodumuzu açıklamadan önce onu derleyeceğiz ve JavaScript'te oluşturulan içeriği göreceğiz, bu kodu asla görmeyeceğimiz için buna gerek yok, ancak bu sefer ne yaptığını daha iyi anlamak için kullanabiliriz. Kahve Komut Dosyası, çıktıyı görelim:

BÜYÜT

Bağlamda olduğumuz için kodumuzu açıklayabiliriz, önce işlevi ile görevi tanımlarız. görev her dosyaya otomatik olarak eklenen kek dosyası. İşlevin ilk argümanı görevin adıdır, bu durumda selamlama ve görevi yürütmek için komut konsolunda kullanacağız, ikinci argüman isteğe bağlı olabilir ve mevcut görevlerimiz listesinde görünecek olan görevin bir açıklamasıdır. Fonksiyonda gönderdiğimiz son argüman görev görev tarafından yürütülecek başka bir işlevdir ve mantığımızın çoğunun depolanacağı yerdir.
Önceki örnek sadece derleyicinin ne yaptığını kontrol etmekti ama bizim dosyamız kek dosyası herhangi bir uzantısı olmamalıdır. Ayrıca komutla hangi görevlere sahip olduğumuzu görebiliriz. Kek Komut konsolunda, neye benzediğini görelim:

Gördüğümüz gibi, görevimizin adını ve açıklamasını görebiliriz. Şimdi belirli bir görevi yürütmek için cake komutunu ve ardından görevin adını kullanıyoruz, bitirmek için konsoldan çıktıyı görelim:

Bir görevi nasıl oluşturacağımızı ve çalıştıracağımızı zaten biliyoruz, ama ya ona bazı argümanlar iletmek istiyorsak? Örneğin, selamımızın gönderdiğimiz bir değere göre tamamen kişiselleştirilmesini istersek ne olur? Bunu yapmak oldukça kolay, hadi bakalım.
Görevimizde yapmamız gereken ilk şey seçeneği tanımlamak, bunu fonksiyon ile yapıyoruz. seçenek mevcut Kek. Bu işlev üç argüman alır, ilki seçeneğin kısa biçimi, ikincisi uzun biçim ve sonuncusu seçeneğin ne işe yaradığının bir açıklamasıdır, ekip olarak gelişiyorsak ve görevlerimizi belgelemek istiyorsak önemli bir şey. Daha sonra seçeneği tanımlamak için görevimizde değişiklikleri yapacağız:
 seçenek '-n', '--name [NAME]', 'selamlama adı' görev "selamlama", "Birine merhaba deriz", (seçenekler) -> mesaj = "Merhaba" if options.name? mesaj + = options.name else mesajı + = "World" console.log mesajı
tanımından önce gördüğümüz gibi görev bizim fonksiyonumuz var seçenek, ardından -n olan kısa biçim gelir, ardından bir değer bekleyeceğini belirten -name olacak uzun biçimimiz ve son olarak açıklamamız olur. Cake komutunu çalıştıracağız ve çıktıyı konsolumuzda göreceğiz:

Gördüğümüz gibi, görevimizin adı, açıklaması ve altında bunun için mevcut seçenekler, kısa ve uzun seçenekler ve açıklama var. Kısa seçenekle görevimizi çalıştıralım ve konsoldan çıktıyı görelim:

Seçeneklerle bir görevi yürütmek için önce argümanları ve ardından görevin adını belirtmemiz önemlidir, çünkü bir hatayla karşılaşmazsak Cakefile dosyamızda neler olabileceği hakkında fazla bir şey söylemez, o zaman nasıl olduğunu görelim. yürütme ikinci seçeneği kullanıyor:

Burada tuhaf bir şey oluyor ve o da, görevi yürütmeden önce seçeneği tek bir komut dosyasıyla kullanıyoruz, bize bir hata veriyor ve yapılacak doğru şey bu, çünkü görevimizde seçeneği --- yerine isim olarak tanımladık. -name, böylece etkinliğini gösteren Kahve Komut Dosyası görevlerin çalışması için.
Ek olarak bir seçeneğin gerekli olup olmadığını tanımlayabiliriz ve bunu görev tanımında değerin olup olmadığını kontrol ederek yaparız ve eğer bir hata atmazsak bu kodun neye benzediğini görelim:
 seçenek '-n', '--name [NAME]', 'selamlamak istediğiniz isim' görev "tebrik", "Seçeneklerin var olduğunu doğrulayın", (seçenekler) -> yeni Hata at ("[NAME] bir gerekli değer ") options.name olmadıkça? konsol.log "Merhaba, # {options.name}"
Ardından görevimizi çalıştıralım ancak bu sefer seçeneği argüman olarak görmezden gelelim ve konsoldan gelen yanıtı görelim:

Gördüğümüz gibi, dosyaya eklediğimiz hata gösterildi, böylece görevlerimiz için seçeneklerin gerektiğinde argüman olarak iletildiğini doğrulayabildik.
Görevlerimizi nasıl oluşturacağımızı ve onlar için seçenekleri nasıl tanımlayacağımızı zaten gördükten sonra, diğerlerinde bulunan görevleri nasıl yürütebileceğimizi görmek önemlidir. Örneğin, görevlerden birinin proje için oluşturduğumuz dizinleri temizlemekten, diğerinin derleme ve inşa etmekten sorumlu olduğu bir projede ortak iki görevimiz olabilir, bakalım bu iki görev nasıl oluyor? gibi görünmeyi yeni bitirdik. tarif et:
 görev "temiz", "Bu görev dizinlerin temizliğini gerçekleştirir", -> console.log "dir …" görevi "build", "Proje için dosyaları derleyin ve derleyin", -> console.log "bina…"
komutu uygulayacağız Kek ve yanıtı konsoldan görelim:

Ek olarak, her iki görevi birlikte yürütmek için, kek komutunu ve ardından görevlerimizin her iki adını da kullanabiliriz:

Gördüğümüz gibi, görevlerimizde garip bir şey yok, ancak gözlemcilersek, inşaat görevimizden önce her zaman temizlik görevini yerine getirmemiz gerektiğinin farkındayız, ama ya paketleme adı verilen üçüncü bir görev istiyorsak, bu daha sonra paketi paketleyecektir. bizim için proje? Bu yüzden önce onu oluşturmalıyız, dizinlerin temiz olduğundan emin olmalı ve sonunda oluşturmalıyız.
Sorun şu ki, bu çözüm optimal değil, herhangi bir nedenle temiz görevi çağırmayı unutursak veya daha kötüsü, inşa görevimizin üçüncü görevimizle ilgili sorunları olacak, neyse ki Cake, işlevle bir görevi diğerinin içinde çağırmamıza izin veriyor. çağırmak, o zaman dosyamızın nasıl göründüğüne bakalım kek dosyası yeni görev ve değişikliklerle:
 görev "temiz", "Bu görev dizinlerin temizliğini gerçekleştirir", -> console.log "dir …" görevi "build", "Proje için dosyaları derleyin ve derleyin", -> console.log "inşa … "görev" paketi "," projemizi temizle, inşa et ve paketle ", -> çağır" temizle "çağır" inşa "console.log" paketleme … "
Şimdi sadece paketlememizi çağırmamız gerekiyor ve bu şekilde diğer iki gerekli görevin sorunsuz çağrıldığından emin oluyoruz, komut konsolunda çıktıyı görelim:

İşlevi kullanan görevlerin olduğunu belirtmek önemlidir. çağırmak eşzamansız olarak yürütülürler, bu nedenle temizleme görevinin oluşturma ve paketlemeden önce yürütüleceğine dair hiçbir garantimiz yoktur, bu nedenle kullanımlarında dikkatli olmalıyız.
Bununla, görevlerimizi oluşturmayı, yürütmeyi, onlara seçenekler vermeyi ve hatta diğer görevlerin başkaları içinde nasıl çağrılacağını öğrendiğimiz ve böylece herhangi bir geliştirmenin en iyi uygulamalarına katkıda bulunan bu etkili dilde bilgimizi genişlettiğimiz bu öğreticiyi sonlandırıyoruz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave