JavaScript ada dimana-mana dalam hal pengembangan perangkat lunak. Ini dapat digunakan untuk membuat aplikasi, halaman web, di server, atau di robot kecil 🤖! Bagaimana kami dapat memastikan JavaScript Anda mampu berjalan di mana pun Anda inginkan sesuai keinginan?

Nah, itulah yang dilakukan oleh ES Check! Ini adalah utilitas yang ditulis untuk memastikan bahwa versi JavaScript yang akan diproduksi cocok dengan versi JavaScript yang diharapkan untuk produksi.

ES Check membutuhkan 2 langkah untuk menyiapkannya!

Menyiapkan ES Check dapat dilakukan dengan menginstalnya dan menambahkan skrip 1 baris.

  1. Tambahkan Pemeriksaan ES.
npm install es-check --save-dev

2. Kemudian tambahkan scriptseperti contohdi bawah ini.

"test:es-check": "es-check es5 'dist/*.js'"

Dengan menggunakan contoh di atas, JavaScript dapat diuji agar cocok dengan versi JavaScript yang ditentukan dengan menjalankannpm run test:es-check di baris perintah. Itu dia! 🎉

Mengapa mengetahui bahwa JavaScript cocok dengan versi tertentu itu penting?

Jika JavaScript yang dikompilasi tidak cocok dengan versi JavaScript yang didukung di lingkungannya, maka JavaScript tidak akan berfungsi. Ini buruk! Menyediakan laman web, aplikasi, layanan, atau robot dengan versi JavaScript yang tidak didukung dapat menyebabkannya berfungsi sebagian atau gagal. 🙀

Bagaimana masalah ketidakcocokan versi JavaScript terjadi?

“Anda seharusnya memeriksa kode kompilasi Anda sebelum diproduksi!”, kata Anda? Saya bersedia! Ya! Aku bersumpah!

Masalah ketidakcocokan versi JavaScript dapat muncul secara tidak terduga pada infrastruktur rilis kode modern. Dalam beberapa paragraf di bawah ini, saya akan menjelaskan kepada Anda bagaimana pertunjukan sialan ini muncul. Perhatikan, saya dramatis! 🤷🏽‍

Pra-s**t menunjukkan kesadaran yang diperlukan

Berikut cuplikan kode cepat package.json palsu dengan 2 *devDependencies[1],foo dan bar.

"devDependencies": {
"foo": "^1.2.4",
"bar": "^6.0.1",
}

Perhatikan ^? Nah, ^ memberitahukan npm, jika ada versi foo atau bar yang sedikit lebih baru, instal versi tersebut. Jadi meskipun foo menyarankan bahwa ia menggunakan 1.2.4, sebenarnya ia mungkin menggunakan 1.2.6.

Begini cara pertunjukannya terjadi

  • Katakanlah ada beberapa pembaruan pada foo. foo telah memperbarui beberapa devDependencies miliknya sendiri dan bug telah diperbaiki. foo versi 1.2.7 kemudian dirilis.
  • Sementara itu saya sedang menguji beberapa kode saya. Saya menggunakanfoo 1.2.6 dan ini berfungsi untuk saya di lingkungan pengujian saya.
  • Semuanya terlihat bagus jadi saya memasukkan kode saya ke produksi.
  • Dalam proses pembuatan kode saya untuk produksi, build baru saya mendapatkan foo 1.2.7 yang baru saja dirilis karena ^ itu.
  • Karena pembaruan devDependency foo yang ditambahkan dengan perbaikan bug, versinya berubah secara tidak terduga.
  • Perubahan build foo *patch[2] versi 1.2.7 menyebabkan bundel JavaScript ke build produksi saya dikompilasi dengan foo yang berisi versi JavaScript yang tidak saya harapkan.
  • Lingkungan tempat saya baru saja memasukkan kode JavaScript tidak mendukung versi JavaScript di foo yang baru saja saya kirimkan dan langsung rusak.
  • Seorang anggota tim atau lebih buruk lagi, seorang pelanggan memberi tahu saya bahwa kode saya yang masuk ke produksi adalah omong kosong. Aku menangis dan mencari tahu kesalahannya dan mencoba memberikan tanggung jawab pada foo tetapi tidak ada yang peduli karena aku ada di sana, siap menerima semua kesalahan.
  • Saya menyematkan foo ke 1.2.4.
  • Saya mendorong ke produksi. Semuanya sudah diperbaiki—kecuali aku. 😿

Glosarium

  • devDependencies: kode JavaScript pembantu yang ditulis orang lain yang saya gunakan untuk menyelesaikan pekerjaan lebih cepat. 💨
  • patch: perubahan versi yang diharapkan dapat memperbaiki masalah namun tidak merusak fungsi paket yang sudah ada.

Membungkusnya

Setelah saya cukup menjelaskan bagaimana setiap kegagalan terjadi, saya memutuskan untuk memikirkan kembali masalahnya. Saya membuat ES Check untuk menyelesaikan masalah itu. ES Check menggunakan parser JavaScript"Acorns" yang memverifikasi versi JavaScript.

Ada beberapa fitur lagi yang akan saya tambahkan ke ES-Check dan kontribusinya disambut baik. Saya bahkan dapat menggunakannya untuk melaporkan bug dengan cepat ke proyek sumber terbuka yang saya gunakan. Gunakan ES Check untuk proyek Anda dan terutama untuk proyek sumber terbuka Anda untuk melindungi diri Anda dari pertunjukan kotor dan menyelamatkan diri Anda!

Saya mendapat banyak bantuan dari tim teknik di Dollar Shave Club yang menulis ES-Check, artikel ini, dan kehidupan—ini sulit. Tim di Dollar Shave Club luar biasa. Kami percaya pada produk yang kami buat. Jika Anda ingin bergabung dengan klub, buka di sini. Jika Anda ingin membuat kode dengan kami, buka di sini. Jika Anda ingin bekerja dengan kami, buka di sini. Ikuti kami di Twitter".

Artikel dan plugin terkait

Mungkin ES Check bukan pilihan Anda karena Anda lebih suka kopi. Tidak apa-apa. Berikut beberapa artikel dan proyek yang menginspirasi saya serta beberapa alat serupa lainnya. ✌🏽