Jump to content

Node Package Manager (npm)

From Wiki

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.

Daftar dependency yang ada di dalam package.json dari package ESLint

Jika kita mengetikkan perintah npm ls dari Terminal di dalam folder project, maka akan muncul struktur dependency yang dibutuhkan dari package eslint beserta anak-anak dependency di dalamnya.

Hasil dari perintah npm ls di dalam folder proyek

Terlihat di gambar atas bahwa package “eslint” membutuhkan dependency lain agar dapat berjalan. Hal ini ditandai dengan struktur berbentuk garis yang saling berhubungan antar package-package di dalam dependency utamanya. Contoh package yang dibutuhkan seperti “babel” , “chalk” , “ajv” , dan masih banyak lagi. Setiap package tersebut tentu saja terdiri dari beberapa file kode dengan ekstensi yang beranekaragam, dan memiliki ukuran file yang bervariasi. Akumulasi dari file-file di dalam dependency ini biasanya membuat ukuran folder node_modules menjadi semakin besar seiring dengan banyaknya dependency package yang ditambahkan ke dalam proyek aplikasi.

Perintah pada NPM

Kamu bisa mendapatkan penjelasan lengkap mengenai seluruh perintah yang ada di NPM pada laman resmi berikut ini. Namun, terdapat beberapa perintah penting yang akan biasa kita gunakan dalam materi dan juga pengembangan aplikasi selanjutnya.

Command Description Common Options
init Membuat berkas package.json pada project [–force|-f|–yes|-y|–scope]
install <package-name> Memasang dan mendaftarkan package pada berkas package.json [-P|–save-prod|-D|–save-dev|-O|–save-optional] [-E|–save-exact] [-B|–save-bundle] [–no-save] [–dry-run]
run-script <command> Menjalankan perintah yang terdapat pada objek scripts di berkas package.json [–silent] [– <args>…]
uninstall <package-name> Menghapus dan mengeluarkan package dari berkas package.json [-S|–save|-D|–save-dev|-O|–save-optional|–no-save]
version Untuk melihat versi package yang tersedia secara global atau lokal [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [–preid=<prerelease-id>] | from-git]

Source