Saya menggunakan Grunt (alat pembuatan baris perintah berbasis tugas untuk proyek JavaScript) dalam proyek saya. Saya telah membuat tag kustom dan saya bertanya-tanya apakah mungkin menjalankan perintah ke dalamnya.
Untuk memperjelas, saya mencoba menggunakan Template Penutupan dan "tugas" harus memanggil file jar untuk melakukan pra-kompilasi file Soy ke file javascript.
Saya menjalankan toples ini dari baris perintah, tetapi saya ingin menetapkannya sebagai tugas.
grunt-shell
bekerja dengan Windows + Cygwin tetapi saya lebih beruntunggrunt-exec
."exec:cmd1", "exec:cmd2"
maka Anda juga memiliki urutan sinkron.Periksa
grunt.util.spawn
:sumber
opts: {stdio: 'inherit'},
Anda dapat melihat output dari perintahgrunt-legacy-util
plugin. Ini merekomendasikan penggunaanrequire('child_process').spawn()
sebagai gantinya.Saya telah menemukan solusi, jadi saya ingin berbagi dengan Anda.
Saya menggunakan grunt di bawah node jadi, untuk memanggil perintah terminal Anda perlu membutuhkan modul 'child_process'.
Sebagai contoh,
sumber
sh
sebelumnya,sh mayCommand.sh
saya tidak yakin ini akan berfungsi di windowsJika Anda menggunakan versi grunt terbaru (0.4.0rc7 pada saat tulisan ini dibuat) baik grunt-exec dan grunt-shell gagal (tampaknya keduanya tidak diperbarui untuk menangani grunt terbaru). Di sisi lain, exec child_process adalah async, yang merepotkan.
Saya akhirnya menggunakan solusi Jake Trent , dan menambahkan shelljs sebagai ketergantungan dev pada proyek saya sehingga saya dapat menjalankan pengujian dengan mudah dan sinkron:
sumber
grunt-shell
berfungsi dengan baik digrunt v0.4.5
bawah WindowsOrang-orang menunjuk child_process, tetapi coba gunakan execSync untuk melihat output ..
sumber
Untuk perintah shell async yang bekerja dengan Grunt 0.4.x gunakan https://github.com/rma4ok/grunt-bg-shell .
sumber