Bagikan melalui


Pilih Versi Node.js yang tepat untuk Azure

Saat mengembangkan aplikasi JavaScript untuk Azure, sangat penting untuk menyelaraskan versi Node.js di lingkungan pengembangan lokal dan lingkungan runtime host Anda. Penyelarasan versi ini memastikan kompatibilitas, mengurangi kemungkinan kesalahan runtime, dan menggunakan kemampuan penuh platform Azure. Dalam artikel ini, Anda mempelajari cara memilih versi Node.js yang sesuai untuk aplikasi dan layanan yang dihosting Azure Anda.

Versi-versi Node.js

Node.js mengikuti jadwal rilis yang dapat diprediksi yang mencakup rilis Dukungan Jangka Panjang (LTS) dan Saat Ini. Versi LTS ditunjuk untuk pemeliharaan dan stabilitas jangka panjang, menjadikannya ideal untuk lingkungan produksi. Versi ini menerima perbaikan bug penting, pembaruan keamanan, dan peningkatan performa untuk jangka waktu yang lama, biasanya 30 bulan. Node.js menggunakan sistem penomoran genap/ganjil untuk membedakan antara rilis LTS dan Saat Ini: versi bernomor genap (misalnya, 20, 22, 24) adalah rilis LTS, sementara versi bernomor ganjil (misalnya, 21, 23, 25) adalah Rilis saat ini. Rilis saat ini mencakup fitur dan peningkatan terbaru tetapi hanya didukung selama enam bulan, setelah itu mereka beralih ke rilis LTS jika diberi nomor genap.

Anda tidak boleh menggunakan Rilis Terbaru dalam lingkungan produksi karena jendela enam bulan dapat tidak selaras dengan runtime platform hosting Azure dan SDK. Anda akan melihat bahwa kontainer pengembangan untuk Node.js tidak menawarkan versi bernomor ganjil/terbaru.

Prasyarat

Semua Azure SDK dan layanan hosting menggunakan versi LTS Node.js. Jika kode aplikasi Anda berjalan pada versi Node.jsyang tidak didukung, Anda harus memperbarui kode sumber aplikasi untuk dijalankan pada runtime LTS yang saat ini didukung.

Anda juga harus tahu layanan hosting mana yang ingin Anda sebarkan dan layanan Azure apa pun yang digunakan aplikasi yang Anda sebarkan.

Kompatibilitas di seluruh lingkungan

Setelah Anda mengetahui layanan Azure dan SDK mana yang digunakan aplikasi Anda, pastikan semua lingkungan untuk aplikasi dapat membangun dan menjalankan versi Node.jsyang sama:

  • lingkungan pengembangan lokal atau kontainer pengembangan
  • Lingkungan proses CI/CD
  • Host runtime aplikasi
  • Azure SDK

Untuk penjelasan tentang masalah yang terkait dengan penggunaan versi yang berbeda di seluruh lingkungan Anda, lihat Masalah kompatibilitas.

Layanan hosting

Saat menggunakan layanan hosting Azure, Anda dapat memilih untuk menyebarkan kontainer ke host atau memilih versi Node.js sebagai runtime untuk host. Dalam kedua kasus, Anda perlu menyelaraskan versi runtime, kode aplikasi, dan dependensi seperti Azure SDK.

Untuk menemukan informasi runtime, gunakan tabel berikut:

Layanan

Informasi versi

Untuk runtime Linux. Anda juga dapat menjalankan perintah Azure CLI berikut untuk melihat semua versi yang didukung.

az webapp list-runtimes | grep node

Proyek baru harus menggunakan model pemrograman terbaru.

Azure Static Web Apps (SWA)

Ada dua runtime berbeda yang perlu dipertimbangkan: front end dan API jika Anda menghosting API Anda di Static Web Apps.

SWA CLI

SWA CLI menyediakan fungsionalitas lingkungan pengembangan termasuk proksi, autentikasi, dan konfigurasi lainnya.

Azure SDK

Azure SDK memerlukan versi LTS Node.js seperti yang dinyatakan dalam kebijakan dukungan. Mungkin ada periode singkat ketika versi LTS yang didukung oleh lingkungan hosting dan SDK tidak cocok, karena perlu waktu untuk memverifikasi versi LTS Node.js baru. Karena biasanya ada tiga versi Node.js yang ditandai sebagai versi Dukungan Jangka Panjang, Anda biasanya dapat menargetkan versi menengah. Target ini memungkinkan Anda beberapa waktu untuk menguji dan memverifikasi bahwa aplikasi Anda dapat berpindah ke versi LTS berikutnya.

Mengelola beberapa versi Node.js

Saat Anda perlu mengelola lebih dari satu versi Node.js di seluruh lingkungan lokal dan jarak jauh Anda, kami sarankan:

  • Container Pengembangan: Gunakan container dengan versi Node.js yang spesifik. Anda dapat mengelola versi Node.js di beberapa lingkungan menggunakan kontainer. Ekstensi Remote - Containers dari Visual Studio Code menyederhanakan proses ini.
  • NVM (Node Version Manager): Antarmuka baris perintah untuk mengatur atau mengalihkan versi lokal Node.jsAnda.

Mengunduh dan menginstal Node.js berdasarkan penggunaan yang Anda maksudkan

Anda dapat mengunduh dan menginstal Node.js berdasarkan kebutuhan Anda.

Masalah kompatibilitas

Berikut adalah beberapa kategori umum masalah kompatibilitas yang dapat muncul saat versi Node.js tidak cocok di seluruh lingkungan:

  • Kerentanan Keamanan: Menggunakan versi kedaluarsa dengan kerentanan keamanan yang diketahui dapat mengekspos aplikasi Anda terhadap risiko keamanan.

  • Kesalahan Sintaks: Aplikasi yang menggunakan sintaks JavaScript terbaru, tidak didukung oleh versi Node.js yang lebih lama, dapat menyebabkan kesalahan sintaks. Kesalahan ini mencegah aplikasi berjalan.

  • API yang tidak digunakan lagi: API yang tidak digunakan lagi dalam versi Node.js yang lebih baru masih dapat hadir dalam versi yang lebih lama, yang mengarah ke perilaku tak terduga atau kesalahan runtime jika versi tidak selaras.

  • Penurunan Performa: Versi Node.js yang lebih baru sering menyertakan peningkatan performa. Menjalankan aplikasi Anda pada versi yang lebih lama dapat mengakibatkan waktu eksekusi yang lebih lambat dan mengurangi performa.

  • Perilaku Tidak Konsisten: Perbedaan cara versi Node.js menangani operasi tertentu, seperti penanganan buffer, perilaku perulangan peristiwa, atau resolusi modul, dapat menyebabkan perilaku yang tidak konsisten di seluruh lingkungan.

  • Konflik Dependensi: Node.js modul atau paket yang kompatibel dengan satu versi Node.js mungkin tidak kompatibel dengan yang lain, menyebabkan konflik dependensi dan kesalahan runtime.

  • Kegagalan Build: Alur CI/CD menggunakan versi Node.js yang berbeda dari lingkungan pengembangan lokal dapat menyebabkan kegagalan build, menyebabkan keterlambatan dalam proses pengembangan dan rilis.

Dengan memastikan bahwa semua lingkungan menggunakan versi Node.jsyang sama, Anda dapat mengurangi masalah kompatibilitas ini dan memastikan proses pengembangan dan penyebaran yang lebih lancar.