Node Package Manager (npm)
NPM (Node Package Manager) adalah suatu package dengan dua kegunaan, yang pertama yaitu repository online dimana penggunanya dapat membagikan modul Node js dan aplikasi buatannya. Jika ingin menggunakan sebuah modul, kamu hanya perlu mencarinya di repository ini, mendownload, dan menginstallnya di komputer.
Kegunaan yang kedua, NPM adalah command line yang bisa menyalurkan interaksi kepada platform online, seperti browser dan server. Utilitas ini dapat menginstall dan menguninstall package, mengelola versi dan dependency yang diperlukan untuk mengerjakan proyek.
Node JS memiliki beberapa pilihan package manager untuk manajemen dependency yang dipakai. Beberapa diantaranya yaitu NPM (Node Package Manager) bawaan Node JS, Yarn , SnowPack, dan PNPM. Setiap package manager tersebut dibuat oleh setiap komunitas dengan tujuan penggunaan tertentu. Misalnya, Yarn yang menjadi alternatif NPM dengan banyak tambahan fitur dan perbaikan performa, atau SnowPack yang menjadi build tools untuk front end web app dengan CDN.
Cara Kerja NPM
Untuk dapat menggunakan NPM, kamu perlu menginstal node.js karena node.js dan NPM berada di dalam satu bundle.
Utilitas command line package manager memungkinkan node.js bekerja dengan baik. Dan untuk menggunakan package tersebut, proyek kamu harus memiliki file bernama package.json.
Ketika kamu membuat suatu proyek baru menggunakan NPM, maka NPM akan request untuk mengisi data proyek yang akan dibuat. Berikut data yang harus kamu isi di dalam proyek:
- Nama proyek
- Versi
- Deskripsi
- Entry point
- Tes command
- Repository git
- Keyword
- Lisensi
- Dependensi
- devDependency
Data-data tersebut lah yang nantinya akan mempermudah dalam membuat dan mengidentifikasi proyek.
Isi dan Ukuran dari Dependency di Folder Node Modules
Proyek aplikasi yang berbasis Node JS pasti membutuhkan dependency yang berupa package library ataupun framework yang membantu dalam proses pengembangan. Package library biasanya diunduh dengan bantuan package manager NPM dari layanan sumber dependency seperti NPMJS. Package yang telah diunduh akan disimpan ke dalam folder node_modules. Tidak jarang package yang dipasang ternyata membutuhkan bantuan package yang lain yang untuk dapat berjalan, dan package yang lain tersebut ada kemungkinan membutuhkan package dependency yang lain juga untuk berfungsi.
Untuk melihat package apa saja yang dibutuhkan dari suatu package, kita dapat bernavigasi ke dalam folder node_modules, dan melihat isi dari salah satu folder dependency. Pada contoh kali ini, kita akan melihat isi dependency yang diperlukan oleh package eslint. Package eslint ketika dipasang membutuhkan beberapa package lainnya agar dapat berjalan dengan lancar. Dan tidak jarang package yang lain tersebut juga membutuhkan dependency yang lain agar dapat berjalan.