Laman » Toolkit » Battle Of Build Scripts Gulp Vs Grunt

    Battle Of Build Scripts Gulp Vs Grunt

    Saya sudah menulis tentang bagaimana untuk memulakan dengan Gulp serta bagaimana untuk memulakan dengan Grunt. Mereka berdua mengautomasikan tugas kami, mereka berdua gunakan nod, dan kedua-duanya memerlukan anda buat tugas dan pasang plugin sejenis. Tetapi adakah anda tertanya-tanya tentang perbezaan antara keduanya, atau bahkan, yang lebih baik?

    Dalam artikel ini saya akan memberi tumpuan terutamanya kepada perbezaan antara kedua-dua projek ini yang boleh membantu anda menentukan mana yang anda anggap lebih baik untuk diri anda. Saya akan menggunakan beberapa kod yang mungkin tidak dikenali. Jika demikian, saya cadangkan membaca melalui dua artikel sebelum diterbitkan sebelum anda bermula.

    Lebih lanjut mengenai Hongkiat.com

    • Bagaimana untuk memulakan dengan Gulp
    • Bagaimana untuk memulakan dengan Grunt

    Kelajuan

    Perbezaan utama antara Gulp dan Grunt terletak pada bagaimana mereka berurusan dengan tugas automasi mereka di bahagian dalam. Gulp menggunakan aliran Node manakala Grunt menggunakan fail temp. Mari kita letakkan itu dalam bahasa Inggeris biasa, bolehkah kita?

    Anggapkan anda ingin menulis kod SASS untuk projek anda. Anda ingin mengkompilasi kod SASS anda dan kemudian mungkin meminimumkannya.

    Grunt mengendalikan ini menggunakan fail pengantara yang merupakan operasi cakera I / O. Fail SASS anda disusun dan kemudian ditulis ke fail sementara. Fail sementara digunakan oleh autoprefixer dan kemudian produk akhir ditulis ke fail destinasi.

    Gulp menjaga semua ini dalam kenangan. Fail SASS sumber anda disusun, hasilnya diserahkan kepada autoprefixer tanpa ditulis ke fail dan fail destinasi kemudian ditulis.

    Berbanding dengan operasi dalam memori, cakera menulis lambat yang bermakna itu Gulp mempunyai kelebihan kelajuan yang besar (untuk sekarang). Perbandingan kelajuan dilakukan oleh tech.tmw yang menunjukkan bahawa kebanyakan tugas sekurang-kurangnya dua kali lebih cepat pada Gulp. Walaupun ini bukan kajian saintifik yang sangat baik, kecenderungan itu ada dan saya telah melihat perkara yang sama dengan projek saya sendiri. Tetapi sejauh mana kesannya adalah perbezaan dalam kelajuan?

    Perbezaan dalam sekejap

    Untuk kebanyakan projek ini tidak penting. Kebanyakan projek adalah kecil. Apabila anda membuat tema WordPress atau sesuatu yang serupa bilangan fail yang anda perlukan untuk bekerja dengan baik dalam had yang munasabah. Ia tidak kira jika stylesheets anda disusun dalam 400ms atau 800ms.

    Tambahan pula, kebanyakan projek boleh berstruktur sedemikian rupa sehingga beberapa isu yang paling intensif boleh dihalang. Sekiranya anda mempunyai 50 fail SASS, anda boleh dengan cepat menggabungkannya semasa dalam pembangunan, tidak akan ada keperluan untuk mengubah suai semula atau memulihkannya. Anda tidak perlu mengoptimumkan imej setiap kali anda menyimpan projek, dan sebagainya.

    Walaupun anda benar-benar memerlukan senjata besar kerana anda menolak kerja anda ke pelayan pementasan atau semasa anda mengemas kini repositori, apakah masa yang dibina selama 5 saat atau 9 saat membuat banyak perbezaan?

    Untuk mengatasinya, Grunt akan menambah sokongan untuk perpipaan dalam pelepasan 0.5 yang akan datang yang akan mempercepatkan hal-hal dengan lebih baik, menjadikannya titik yang tidak pasti.

    Masyarakat

    Grunt telah lebih lama daripada Gulp sehingga ia mempunyai pangkalan pengguna yang signifikan. Grunt pada masa ini menerima kira-kira 37,000 muat turun sehari secara purata, Gulp mendapat sedikit lebih daripada separuh itu, berhampiran tanda 23,000. Bahawa dikatakan, Gulp hanya sekitar satu setengah tahun, menjadikan jumlah itu dihormati sekurang-kurangnya.

    Grunt kini mempunyai lebih daripada 4000 pemalam manakala Gulp mempunyai lebih daripada 1200 plugin. Menurut trend Google, lebih ramai orang mencari perkara-perkara yang berkaitan dengan Grunt, terdapat lebih banyak forum yang menangani dan umumnya sokongan masyarakat.

    Sudah tentu Gulp sudah tiba dan datang yang bermaksud ini mungkin juga dalam jangka panjang. Walau bagaimanapun, ini merupakan halangan bagi sesetengah pemaju, terutamanya yang menjalankan projek berasaskan Grunt.

    Saya ingin menunjukkan bahawa komuniti untuk kedua-duanya adalah sangat bagus. Setakat yang dapat saya katakan hubungan antara pemimpin dalam setiap komuniti adalah luar biasa, dan harus menjadi contoh kepada semua. Pencipta Gulp sebenarnya membantu penulis perbandingan ujian kelajuan meningkatkan ketepatan masa yang membawa kepada penurunan dalam perbezaan masa. Itulah yang saya panggil seorang lelaki!

    Konfigurasi Kod Vs

    Rupa-rupanya ini adalah titik tipikal bagi banyak orang, tetapi untuk jujur, saya tidak dapat melihat masalah di sini secara peribadi.

    Hujah seperti ini: Gulp adalah contoh yang baik kod atas konfigurasi boleh menjadi perkara yang baik apabila konfigurasi mendapat sedikit mengelirukan. Orang lain mengatakan bahawa ini adalah benar dan Gulp lebih mudah baca, ia lebih sukar untuk tulis kerana paip boleh menjadi agak mengelirukan.

    Sebelum saya menimbang, inilah contoh yang sama yang pertama di Grunt, kemudian di Gulp:

     grunt.initConfig (sass: dist: files: [src: 'dev / *. scss', dest: '.tmp / styles', expand: true, ext: '.css' : dist: fail: [expand: true, cwd: '.tmp / styles', src: ', * / *. css', dest: 'css / styles'] gaya: fail: ['dev / *. scss'], tugas: ['sass: dist', 'autoprefixer: dist']); grunt.registerTask ('default', ['styles', 'watch']); 
     gulp.task ('sass', function () gulp.src ('dev / *. scss') .pipe (sass ()) .pipe (autoprefixer ()) .pipe (gulp.dest ('css / ));); gulp.task ('default', function () gulp.run ('sass'); gulp.watch ('dev / *. scss', function () gulp.run ('sass');); ); 

    Pendapat saya ialah ia benar-benar tidak penting. Pasti, jika anda terbiasa dengan cara yang pertama anda mungkin perlu meluangkan sedikit masa memikirkan yang kedua, tetapi ini juga sebaliknya. Jadi bagi saya, yang “ia mengelirukan” hujah benar-benar tidak sah. Mana-mana Kaedah baru yang anda pelajari adalah mengelirukan pada mulanya, tetapi jika anda meluangkan masa untuk memahami logik masing-masing, semuanya berubah.

    Yang berkata, saya lebih suka API Gulp kerana ia bersiher, dan ia mencerminkan cara saya berfikir lebih dekat daripada Grunt. Ini sudah tentu sepenuhnya subjektif dan bukan masalah dengan Grunt sama sekali, itu hanya pilihan peribadi saya.

    Cara Pilih

    Saya tidak fikir ada soalan mengenai hakikat bahawa Grunt dan Gulp adalah alat yang hebat dan telah membantu orang-orang menyelamatkan waktu berjam-jam dari masa ke masa. Grunt agak lambat buat masa ini, tetapi mempunyai komuniti yang jauh lebih besar. Gulp lebih cepat, mempunyai API bersih, tetapi kekurangan pangkalan pengguna.

    Saya fikir keputusan itu akhirnya akan turun kesinambungan, plugin yang tersedia dan pilihan.

    (1) Jika anda telah menggunakan Grunt / Gulp untuk sementara waktu sekarang dan anda gembira dengannya, tidak ada sebab untuk bertukar.

    (2) Jika projek anda memerlukan plugin yang tidak disediakan oleh Gulp dan anda tidak bersedia untuk menulis sendiri, anda perlu pergi dengan Grunt.

    (3) Jika kedua-dua pertimbangan di atas tidak terpakai kepada anda, ia akan turun ke pilihan. Saya mencadangkan mencuba dan melihatnya yang mana satu dengan anda.

    Seperti yang saya katakan, saya memilih untuk menggunakan Gulp kerana saya menyukai API bersihnya lebih baik tetapi saya sangat selesa menggunakan Grunt jika projek memanggilnya. Apa yang anda perlu tidak Adakah dibaca bahawa Encik Know-it-semua mengatakan bahawa Gulp lebih baik dan menerimanya. Walaupun terdapat perbezaan, tidak ada pemenang yang jelas dan kedua-dua projek boleh, dan akan, wujud bersama. Cuba mereka dan buat minda sendiri.

    Nota: anda mungkin juga ingin mempertimbangkan pendapat daripada pengguna seperti Keith Cirkel (seorang perunding Javascript) yang menasihatkan anda untuk menggunakan tidak. Dalam menariknya Kenapa kita harus berhenti menggunakan artikel Grunt & Gulp, dia menyarankan menggunakan npm.

    Bacaan lanjut

    Terdapat banyak artikel lain yang sangat baik mengenai topik ini. Saya dengan sungguh-sungguh akan mencadangkan mana-mana perkara berikut untuk bacaan lanjut; tidak pernah menyakitkan untuk membaca apa yang orang lain katakan!

    • Grunt vs Gulp - Beyond the Numbers (terima kasih khas untuk contoh yang jelas)
    • Gulp, Grunt, Apa saja
    • Pilih: Grunt, Gulp atau npm?
    • Speedtesting Gulp and Grunt
    • Kenapa kita harus berhenti menggunakan Grunt & Gulp
    • Membina Wars (gunakan anak panah untuk menavigasi)
    • Tidak perlu mengetuk, mengambil Gulp Air Segar