Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika Anda mengembangkan aplikasi Node.js dengan banyak paket npm, tidak jarang mengalami peringatan atau kesalahan saat Anda membangun proyek jika satu atau beberapa paket sudah diperbarui. Terkadang, hasil konflik versi, atau versi paket tidak digunakan lagi. Berikut beberapa tips cepat untuk membantu Anda mengonfigurasi file package.json dan memahami apa yang terjadi saat Anda melihat peringatan atau kesalahan. Ini bukan panduan lengkap untuk package.json dan hanya difokuskan pada penerapan versi paket npm.
Sistem penerapan versi paket npm memiliki aturan yang ketat. Format versi mengikuti di sini:
[major].[minor].[patch]
Katakanlah Anda memiliki paket di aplikasi dengan versi 5.2.1. Versi utamanya adalah 5, versi minornya adalah 2, dan patch-nya adalah 1.
- Dalam pembaruan versi utama, paket menyertakan fitur baru yang tidak kompatibel mundur, itu melanggar perubahan.
- Dalam pembaruan versi minor, fitur baru telah ditambahkan ke paket yang kompatibel mundur dengan versi paket sebelumnya.
- Dalam pembaruan patch, satu atau beberapa perbaikan bug disertakan. Perbaikan bug selalu kompatibel mundur dengan versi terbalik.
Perlu dicatat bahwa beberapa fitur paket npm memiliki dependensi. Misalnya, untuk menggunakan fitur baru dari paket kompilator TypeScript (ts-loader) dengan webpack, ada kemungkinan Anda juga perlu memperbarui paket npm webpack dan paket webpack-cli.
Untuk membantu mengelola penerapan versi paket, npm mendukung beberapa notasi yang dapat Anda gunakan di package.json. Anda dapat menggunakan notasi ini untuk mengontrol jenis pembaruan paket yang ingin diterima di aplikasi Anda.
Katakanlah Anda menggunakan React dan perlu menyertakan paket npm react dan react-dom. Anda dapat menentukannya dengan beberapa cara dalam file package.json Anda. Misalnya, Anda dapat menentukan penggunaan versi paket yang tepat seperti berikut.
"dependencies": {
"react": "16.4.2",
"react-dom": "16.4.2",
},
Dengan menggunakan notasi sebelumnya, npm akan selalu mendapatkan versi ditentukan dengan tepat, 16.4.2.
Anda dapat menggunakan notasi khusus untuk membatasi pembaruan pada pembaruan patch (perbaikan bug). Dalam contoh ini:
"dependencies": {
"react": "~16.4.2",
"react-dom": "~16.4.2",
},
Anda menggunakan karakter tilde (~) untuk memberi tahu npm agar hanya memperbarui paket saat di-patch. Jadi, npm dapat memperbarui react 16.4.2 ke 16.4.3 (atau 16.4.4, dll.), tetapi tidak akan menerima pembaruan untuk versi utama atau minor. Jadi, 16.4.2 tidak akan diperbarui ke 16.5.0.
Anda juga dapat menggunakan simbol tanda sisipan (^) untuk menentukan bahwa npm dapat memperbarui nomor versi minor.
"dependencies": {
"react": "^16.4.2",
"react-dom": "^16.4.2",
},
Dengan menggunakan notasi ini, npm dapat memperbarui react 16.4.2 ke 16.5.0 (atau 16.5.1, 16.6.0, dll.), tetapi tidak akan menerima pembaruan ke versi utama. Jadi, 16.4.2 tidak akan diperbarui ke 17.0.0.
Saat memperbarui paket npm, npm menghasilkan file package-lock.json, yang mencantumkan versi paket npm aktual yang digunakan di aplikasi Anda, termasuk semua paket berlapis. Meskipun package.json mengontrol dependensi langsung untuk aplikasi Anda, package.json tidak mengontrol dependensi berlapis (paket npm lain yang diminta oleh paket npm tertentu). Anda dapat menggunakan file package-lock.json dalam siklus pengembangan jika Anda perlu memastikan bahwa pengembang dan penguji lain menggunakan paket yang persis dengan yang Anda gunakan, termasuk paket berlapis. Untuk informasi selengkapnya, lihat package-lock.json dalam dokumentasi npm.
Untuk Visual Studio, file package-lock.json tidak ditambahkan ke proyek Anda, tetapi Anda dapat menemukannya di folder proyek.