npm: dasar-dasar, manajer paket untuk React Native dan Node.js

Penulis: IT Sectr Diterbitkan: 2026-02-13 Waktu membaca: 10 mnt

npm (Node Package Manager) — manajer paket standar untuk platform Node.js, termasuk dalam paket instalasi Node.js. npm mengelola dependensi proyek JavaScript dan TypeScript: menginstal pustaka di node_modules, memperbarui versi paket, menyelesaikan konflik versi. package.json — file konfigurasi pusat dengan metadata dan daftar dependensi. npm Registry — repositori paket terbesar. Selengkapnya di npm Registry.

Poin Utama

  • npm — manajer paket standar Node.js, termasuk dalam instalasi Node.js sejak versi 0.6.3
  • package.json — file konfigurasi proyek dengan dependensi, skrip, dan metadata
  • npm install — perintah dasar untuk menginstal dependensi dari package.json ke folder node_modules
  • package-lock.json — file fiksasi versi tepat untuk instalasi yang dapat direproduksi di semua lingkungan
  • npm ci — perintah untuk CI/CD yang menginstal paket secara ketat sesuai file lock tanpa memperbaruinya

Apa itu npm — manajer paket Node.js?

npm dibuat pada tahun 2010 oleh Isaac Schlueter sebagai solusi untuk mengelola dependensi Node.js. Sejak 2014 npm dikelola oleh perusahaan npm, Inc., yang diakuisisi oleh Microsoft/GitHub pada 2020. Alat ini terdiri dari dua bagian: CLI (baris perintah) untuk menginstal dan mengelola paket, dan Registry — repositori pusat dari semua modul yang dipublikasikan di registry.npmjs.org.

npm Registry — repositori paket terbesar: lebih dari 2 juta paket dan lebih dari 10 miliar unduhan setiap bulan. Setiap paket memiliki versi SemVer, deskripsi, dependensi, lisensi, dan kepenulisan. Publikasi paket sendiri dilakukan melalui npm publish. npm mendukung paket scoped untuk organisasi (@scope/package), repositori privat, dan audit keamanan bawaan.

Node.js versi 18+ menyertakan npm 9+ dengan kinerja yang ditingkatkan, workspaces untuk monorepo, dan mekanisme peer dependencies yang dirancang ulang. Ekosistem npm mencakup JavaScript sisi server, frontend (React, Vue, Angular), pengembangan seluler (React Native), alat build (Webpack, Vite), dan utilitas CLI. npm adalah saluran distribusi utama untuk pustaka JavaScript.

Fitur utama npm

npm install — perintah utama yang membaca package.json dan package-lock.json untuk menginstal semua dependensi di node_modules. Pada saat pertama dijalankan, npm menghitung grafik dependensi, menyelesaikan konflik versi, dan menghasilkan package-lock.json. Perintah npm install <package> menginstal paket tertentu; flag --save-dev menambahkan ke devDependencies, --global — secara global.

npx — pelaksana paket, disertakan dalam npm sejak versi 5.2. npx memungkinkan menjalankan utilitas CLI tanpa instalasi global: npx react-native init atau npx create-react-app my-app. npx mengunduh paket ke cache sementara, menjalankannya, dan membersihkannya setelah selesai. npx juga berguna untuk menjalankan versi tertentu dari alat.

npm audit memindai pohon dependensi untuk kerentanan yang diketahui dari basis data npm. Perintah menampilkan laporan dengan tingkat keparahan (critical, high, moderate) dan merekomendasikan npm audit fix untuk pembaruan otomatis paket yang rentan. npm cache menyimpan paket yang diunduh secara lokal. npm cache clean --force membersihkan cache saat ada masalah instalasi. npm outdated menunjukkan paket yang usang.

bash
# Perintah utama npm
$ npm install
$ npm install react-native-webview --save
$ npm install typescript --save-dev
# Menjalankan tanpa instalasi global
$ npx react-native init MyApp
# Audit keamanan
$ npm audit --fix

Struktur package.json dan manajemen dependensi

package.json — adalah file JSON di root proyek yang mendeskripsikan metadata, dependensi, dan konfigurasinya. Bidang wajib: name (nama unik paket) dan version (versi SemVer, misalnya 1.0.0). File dibuat dengan perintah npm init -y untuk inisialisasi cepat atau secara manual.

Semantic Versioning (SemVer) — standar versi MAJOR.MINOR.PATCH. Versi utama berubah saat perubahan API yang tidak kompatibel, versi minor — saat penambahan fungsionalitas (kompatibel mundur), patch — saat perbaikan bug. Simbol ^ sebelum versi mengizinkan pembaruan versi minor dan patch, ~ — hanya patch.

json
{
  "name": "my-app",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios"
  },
  "dependencies": {
    "react": "^18.3.0",
    "react-native": "^0.76.0"
  },
  "devDependencies": {
    "typescript": "^5.5.0",
    "@types/react": "^18.3.0"
  }
}
BidangTujuanContoh Nilai
scriptsPerintah untuk dijalankan dengan npm run"start": "node index.js"
dependenciesDependensi produksi aplikasi"react": "^18.3.0"
devDependenciesAlat pengembangan dan pengujian"jest": "^29.7.0"
peerDependenciesDependensi host untuk pustaka"react": ">=17.0.0"
enginesPersyaratan versi Node.js{"node": ">=18.0.0"}

npm dalam pengembangan React Native

React Native proyek aktif menggunakan npm untuk mengelola dependensi. Paket standar mencakup react, react-native, pustaka navigasi (React Navigation), permintaan HTTP (axios), manajemen state (Redux, Zustand), dan komponen UI. npm memungkinkan instalasi ribuan paket yang kompatibel dari repositori.

npx pod-install — perintah wajib setelah menginstal modul native di React Native untuk iOS. npm secara otomatis menghasilkan Podfile.lock berdasarkan package-lock.json. Di proyek Expo, expo install digunakan sebagai pengganti npm install, karena memilih versi yang kompatibel dengan versi Expo SDK saat ini.

Konflik versi — masalah umum di React Native: react-native-reanimated, react-native-gesture-handler, dan react-native-safe-area-context memerlukan versi yang selaras. Solusi — perbarui semua paket ke versi kompatibel terbaru atau gunakan --legacy-peer-deps. package-lock.json sangat penting untuk modul native yang dikompilasi melalui CocoaPods dan Gradle.

Perbandingan npm dengan manajer alternatif

npm — manajer paket standar, termasuk dalam Node.js. Alternatif utama: yarn (dibuat oleh Facebook pada 2016) dan pnpm (cepat, dengan tautan keras). Mulai npm 5, perbedaan kecepatan dan fungsionalitas antara npm dan yarn minimal. npm 7+ menambahkan workspaces, membuatnya kompetitif untuk monorepo.

Karakteristiknpmyarnpnpm
Tahun pembuatan201020162017
File lockpackage-lock.jsonyarn.lockpnpm-lock.yaml
InstalasiBerurutan (npm 5+)ParalelParalel
Ruang diskStandarStandarMinimal (tautan)
WorkspacesYa (npm 7+)YaYa
Plug'n'PlayTidakYaTidak

Menurut State of JS 2025: npm digunakan oleh 62% pengembang, yarn — 35% (terutama proyek lama dan penggemar PnP), pnpm — 3%. Untuk proyek React Native, kedua alat setara, tetapi npm lebih sering ditemukan di proyek Expo SDK 50+ dan inisialisasi React Native baru.

yarn mempertahankan keunggulan di monorepo yang sangat besar (100+ paket) berkat implementasi workspaces dan Plug'n'Play yang lebih matang. pnpm unggul dalam penghematan ruang disk melalui tautan keras ke penyimpanan global. Pemilihan manajer tergantung pada preferensi tim dan infrastruktur.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara npm install dan npm ci?

npm install memperbarui package-lock.json dan dapat menginstal versi minor baru dalam rentang semantik. npm ci (Clean Install) menghapus node_modules dan menginstal paket secara ketat sesuai package-lock.json tanpa memperbaruinya. npm ci lebih cepat, digunakan di CI/CD dan menjamin lingkungan yang identik di semua mesin. Jika package-lock.json tidak ada, npm ci mengembalikan error.

Bagaimana cara memperbaiki konflik peer dependencies di npm?

Mulai npm 7, konflik peer dependencies menyebabkan error build. Solusi: perbarui semua paket ke versi kompatibel melalui npm update, gunakan flag --legacy-peer-deps untuk mode npm 6, atau tambahkan bagian overrides di package.json untuk memaksa fiksasi versi paket tertentu. Opsi terbaik — perbarui dependensi ke versi kompatibel.

Apa itu npm audit dan mengapa diperlukan?

npm audit memindai pohon dependensi untuk kerentanan yang diketahui dari basis data npm Security Advisory. Perintah menampilkan laporan dengan tingkat keparahan (critical, high, moderate, low) dan merekomendasikan npm audit fix untuk pembaruan otomatis paket yang rentan ke versi aman. Menjalankan npm audit secara teratur — praktik keamanan dasar dalam proyek JavaScript.

Bagaimana npm workspaces menyederhanakan monorepo?

npm workspaces memungkinkan pengelolaan beberapa paket dalam satu repositori. Tambahkan bidang "workspaces": ["packages/*"] di package.json root. Keuntungan: instalasi tunggal semua dependensi di node_modules bersama, symlink otomatis antar paket lokal, menjalankan skrip untuk semua paket dari root, menghilangkan duplikasi versi.

Mengapa harus melakukan commit package-lock.json ke repositori?

package-lock.json menetapkan versi tepat dari semua dependensi dan paket transitifnya. Tanpa itu, pengembang dan server CI yang berbeda dapat memperoleh versi pustaka yang berbeda dalam rentang semantik, yang menyebabkan error "berfungsi di mesin saya". Melakukan commit file lock menjamin build yang dapat direproduksi dan perilaku identik di semua lingkungan.

Ringkasan

  • npm — manajer paket standar Node.js, termasuk dalam instalasi Node.js sejak versi 0.6.3
  • package.json — file konfigurasi proyek dengan dependensi, skrip, dan metadata
  • npm install — instalasi dependensi, npm ci — fiksasi sesuai package-lock.json untuk CI/CD
  • package-lock.json — fiksasi versi tepat, wajib untuk build yang dapat direproduksi
  • npm Registry — repositori paket terbesar dengan lebih dari 2 juta modul
  • npm audit — pemeriksaan keamanan dependensi dengan perbaikan kerentanan otomatis
  • npm workspaces — mekanisme pengelolaan monorepo dengan node_modules bersama

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga