Apa itu npm
npm, singkatan dari Node.js Package Manager, adalah alat yang mendasar dalam dunia pengembangan JavaScript. Awalnya dirancang untuk mengelola pustaka Node.js, namun telah berevolusi menjadi standar de facto untuk mengelola proyek JavaScript.
npm memiliki dua peran. Ini adalah utilitas baris perintah yang membantu pengembang dalam instalasi paket, manajemen versi, dan manajemen dependensi. Selain itu, berfungsi sebagai database online, bertindak sebagai repository di mana paket JavaScript disimpan dan dibagikan.
Penggunaan npm menyederhanakan proses berbagi dan penggunaan ulang kode. Ini memungkinkan pengembang untuk merakit proyek mereka seperti balok bangunan menggunakan komponen yang dapat digunakan ulang. Hal ini pada gilirannya secara signifikan mempercepat proses pengembangan dan meningkatkan produktivitas.
Menginstal npm
npm didistribusikan bersama Node.js, yang berarti bahwa saat Anda mengunduh dan menginstal Node.js, Anda secara otomatis mendapatkan npm terpasang di komputer Anda.
Cara Kerja npm
Ketika sebuah paket diinstal menggunakan npm, ia berkomunikasi dengan registry-nya, mencari paket di database, mengambilnya, dan menyimpannya ke dalam proyek. Paket-paket ini disimpan dalam file yang dikenal sebagai package.json
, yang bertindak sebagai manifesto untuk proyek saat ini, melacak dependensinya dan metadata lainnya.
Direktori node_modules
adalah tempat npm menginstal dependensi proyek Anda. Saat Anda menjalankan npm install
, npm secara otomatis membuat direktori ini jika tidak ada, dan menginstal paket di sana.
Saat Anda menjalankan npm install [nama-paket]
, npm terhubung ke registry npm, mengambil paket, dan menempatkannya di folder node_modules.
Perintah npm Umum
npm menyediakan berbagai perintah untuk membantu dalam manajemen paket. Pada bab ini, saya akan membahas beberapa perintah yang paling umum dan berguna yang akan Anda gunakan dalam pengembangan sehari-hari.
-
npm init
Perintah ini digunakan untuk membuat filepackage.json
baru di direktori proyek Anda. Ini akan meminta Anda untuk memasukkan beberapa informasi seperti nama proyek, versi, deskripsi, dll. Jika Anda ingin dengan cepat menghasilkan filepackage.json
dengan nilai default, Anda dapat menggunakan flag-y
atau--yes
, seperti ini:npm init -y
. -
npm install
(ataunpm i
)
Ini mungkin adalah perintah npm yang paling sering digunakan. Ini digunakan untuk menginstal paket ke proyek Anda. Anda dapat menentukan nama paket seperti ini:npm install <nama-paket>
. Menjalankannpm install
tanpa nama paket akan menginstal semua dependensi yang terdaftar dalam filepackage.json
Anda. -
npm uninstall
Perintah ini menghapus paket dari proyek Anda. Ini juga memperbarui filepackage.json
danpackage-lock.json
. Penggunaan:npm uninstall <nama-paket>
. -
npm update
Perintah ini mengupdate paket-paket Anda ke versi terbaru sesuai dengan rentang versi semantik yang didefinisikan dalam filepackage.json
Anda. Jika Anda ingin memperbarui paket tertentu, Anda dapat menentukan nama paket:npm update <nama-paket>
. -
npm list
Perintah ini akan menampilkan pohon dependensi proyek Anda, menunjukkan semua paket yang terinstal dan versi-versinya. Jika Anda ingin melihat dependensi dari paket tertentu, gunakannpm list <nama-paket>
. -
npm run
Perintah ini digunakan untuk menjalankan skrip yang didefinisikan dalam filepackage.json
Anda. Misalnya, jika Anda memiliki skrip bernama "test" dalam filepackage.json
Anda, Anda dapat menjalankannya dengannpm run test
. -
npm publish
Jika Anda telah membuat paket Anda sendiri dan ingin membagikannya dengan dunia, Anda dapat menggunakannpm publish
untuk mempublikasikan paket Anda ke registry npm. -
npm version
Perintah ini membantu Anda untuk meningkatkan versi paket Anda, mengikuti aturan versi semantik. Anda dapat menggunakannpm version patch
untuk meningkatkan patch version,npm version minor
untuk versi minor, dannpm version major
untuk versi mayor.
package.json dan package-lock.json
Pada bab ini, saya akan membahas dua file penting dalam proyek yang berbasis npm: package.json
dan package-lock.json
. File-file ini memainkan peran penting dalam mendefinisikan proyek Anda dan mengelola dependensinya.
package.json
File package.json adalah file manifesto yang berisi metadata tentang proyek Anda. Ini adalah peta jalan untuk aplikasi Anda dan mencakup informasi seperti nama proyek, versi, deskripsi, penulis, lisensi, dan lain-lain. Ini juga mencantumkan dependensi proyek, memungkinkan siapa saja untuk menginstal semua paket yang diperlukan dengan satu perintah npm install
.
Berikut adalah contoh sederhana file package.json
:
{
"name": "my-awesome-project",
"version": "1.0.0",
"description": "This is my awesome project",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Your Name",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
Dalam contoh ini, bagian scripts
mendefinisikan tugas-tugas yang dapat dijalankan dengan perintah npm run
. Bagian dependencies
mencantumkan semua paket yang dibutuhkan proyek Anda untuk berjalan. Dalam contoh ini, proyek kita memiliki satu dependensi: paket express
.
package-lock.json
File package-lock.json
dihasilkan secara otomatis untuk setiap operasi di mana npm memodifikasi struktur direktori node_modules
atau file package.json
. Ini menjelaskan struktur tepat yang dihasilkan, sehingga instalasi selanjutnya dapat menghasilkan struktur yang identik, terlepas dari pembaruan dependensi yang terjadi di antara.
File package-lock.json
sangat penting untuk memastikan bahwa dependensi proyek Anda tetap sama di semua lingkungan. Ini mencantumkan semua dependensi proyek Anda dan versi yang tepat, beserta versi dependensi mereka, dan seterusnya.
Meskipun file package.json
dapat diedit secara manual, Anda seharusnya tidak pernah mengedit file package-lock.json
secara langsung. Ini selalu harus dihasilkan dan diperbarui oleh npm.