Materi
Proyek Node menyimpan keterangannya di package.json: nama, jenis modul, skrip, dan daftar paket yang dibutuhkan. Paket yang dipakai kode saat aplikasi berjalan, seperti kerangka web, masuk dependencies. Alat yang hanya dipakai selama pengembangan, seperti pustaka pengujian, masuk devDependencies; npm install nama-paket --save-dev menaruhnya di sana. Panduan Node.js merangkum bedanya: dependencies dibawa bersama aplikasi ke produksi.
{
"name": "api-toko-roti",
"type": "module",
"private": true,
"scripts": {
"dev": "node --watch server.js",
"test": "node --test"
},
"dependencies": { "express": "^5.1.0" },
"devDependencies": { "supertest": "^7.1.0" }
}npm mengikuti semver: nomor versi berbentuk MAYOR.MINOR.PATCH. Tanda caret di depan versi, seperti ^5.2.13, menerima semua rilis minor dan patch mulai 5.2.13 sampai sebelum 6.0.0. Versi tanpa tanda, seperti 5.2.13, hanya menerima rilis itu. Ketiga angkanya dibandingkan sebagai bilangan satu per satu, jadi 5.10.0 lebih baru daripada 5.2.13 walaupun teks "5.10.0" diurutkan lebih dulu.
Bagian scripts berisi perintah bernama. npm run dev menjalankan perintah di scripts.dev; nama yang tidak ada di sana ditolak dengan pesan skrip tidak ditemukan. package-lock.json mencatat versi persis setiap paket yang terpasang, termasuk paket turunannya, sehingga isi node_modules sama di setiap komputer selama berkas itu tidak berubah. Berkas kunci itu ikut disimpan di Git, sedangkan node_modules tidak.