2013-04-20 14 views
9

Şu anda grunt görevinden kabuk komutlarını çalıştırmak için grunt-shell kullanıyorum. '& & &' ile bir araya getirmekten başka bir görevde birden çok komut çalıştırmanın daha iyi bir yolu var mı?Gruntjs görevinde MULTIPLE kabuk komutlarını nasıl çalıştırırım?

Benim Gruntfile (kısmi):

grunt.initConfig({ 
    shell: { 
    deploy: { 
     options: { stdout: true }, 
     command: 'mkdir -p static/styles && cp public/styles/main.css static/styles' 
    } 
    } 
}); 

komutları bir dizi değil çalışır, ancak çok güzel olurdu:

grunt.initConfig({ 
    shell: { 
    deploy: { 
     options: { stdout: true }, 
     command: [ 
     'mkdir -p static/styles', 
     'cp public/styles/main.css static/styles' 
     ] 
    } 
    } 
}); 

cevap

14

Sen onları bir arada katılabilirsiniz:

grunt.initConfig({ 
    shell: { 
    deploy: { 
     options: { stdout: true }, 
     command: [ 
     'mkdir -p static/styles', 
     'cp public/styles/main.css static/styles' 
     ].join('&&') 
    } 
    } 
}); 

Dizileri desteklememeyi seçmememin nedeni, bazılarının isteyebileceği && yerine ayırıcı olarak ;, yukarıdakileri kolaylaştırır.

+0

Teşekkürler, bazen bariz cevap doğru olanı :). Komut satırında deneyimli değilim, bu yüzden kullanıp kullanamayacağımı bilmiyordum. Hala tanıdık (grunt.registerTask) ve bu nedenle deyimsel olduğundan dizi sözdizimini destekliyordum. Kullanıcılar her zaman '('; ') grubuna katılabilirler. –

+2

'&&' işlevini kullanmak, yalnızca önceki komut başarılı olursa aşağıdaki komutu yürütür. ';' Kullanarak, ne olursa olsun komutları yürütmeye devam edeceği anlamına gelir. Dokümanları bir örnekle güncelledim. Bunu soran ilk siz değilsiniz :) –

+0

, komut paralel bir şekilde çalıştırılabilirse daha iyi olurdu. Ben düşünmüyorum * join() yaklaşımı bunu yapar. – the0ther

İlgili konular