Instalasi
Menginstal npm & Node
node -v && npm -v # periksa versi terpasang npm install -g npm@latest # perbarui npm itu sendiri nvm install --lts # install Node LTS via nvm nvm use 20 # beralih ke Node 20
Perintah Install
npm installInstal semua dependensi dari package.json
npm install pkgTambahkan paket sebagai dependency
npm install -D pkgTambahkan paket sebagai devDependency
npm install -g pkgInstal paket secara global
npm install [email protected]Instal versi tertentu
npm ciInstal bersih dari lock file (CI/CD)
npm uninstall pkgHapus paket
Manajemen Paket
Mengelola Paket
npm ls # daftar paket terpasang npm ls --depth=0 # hanya level teratas npm outdated # periksa versi terbaru npm update # perbarui dalam rentang semver npm audit # periksa kerentanan
Perintah Manajemen
npm lsDaftar paket terpasang sebagai pohon
npm outdatedTampilkan paket yang ada versi lebih baru
npm update [pkg]Perbarui paket dalam rentang semver
npm auditAudit dependensi untuk kerentanan
npm audit fixPerbaiki otomatis dependensi rentan
npm pruneHapus paket yang tidak diperlukan
npm dedupeRatakan pohon dependensi untuk mengurangi duplikasi
Skrip
Menjalankan Skrip
npm run build # jalankan skrip "build" npm test # pintasan untuk skrip "test" npm start # pintasan untuk skrip "start" npm run lint -- --fix # teruskan argumen ke skrip npm run dev & # jalankan di latar belakang
Siklus Hidup Skrip
npm test / npm tJalankan scripts.test
npm startJalankan scripts.start
npm run <name>Jalankan skrip kustom apapun
pre<name>Berjalan otomatis sebelum
post<name>Berjalan otomatis setelah
npm runDaftar semua skrip tersedia
package.json
Inisialisasi & Field
npm init # setup interaktif npm init -y # terima semua default npm pkg set name="my-app" # set field npm pkg get version # baca field
Field Utama
nameNama paket (huruf kecil, tanpa spasi)
versionVersi saat ini (semver: major.minor.patch)
mainEntry point untuk CommonJS (require)
moduleEntry point untuk ES modules (bundler)
type"module" untuk ESM, "commonjs" untuk CJS (default)
scriptsPerintah bernama (build, test, start, dll.)
dependenciesDependensi produksi
devDependenciesDependensi hanya untuk pengembangan
enginesRentang versi Node/npm yang diperlukan
Versioning
Perintah Versi
npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.1 → 1.1.0 npm version major # 1.1.0 → 2.0.0 npm version 3.2.1 # set versi eksplisit npm version prerelease --preid=beta # 1.0.0-beta.0
Rentang Semver
^1.2.3Kompatibel: >=1.2.3 <2.0.0 (default)
~1.2.3Level patch: >=1.2.3 <1.3.0
1.2.3Hanya versi tepat
>=1.0.0 <2.0.0Rentang eksplisit
*Versi apa saja
1.x / 1.2.xRentang wildcard
latestTag versi terbaru yang dipublikasikan
Publishing
Alur Kerja Publish
npm login # autentikasi ke registry npm publish # publish paket publik npm publish --access public # paket scoped sebagai publik npm unpublish [email protected] # hapus versi tertentu npm deprecate pkg@"<2" "Use v2+" # tandai versi lama usang
Referensi Publish
npm loginAutentikasi dengan registry npm
npm publishPublish paket ke registry
npm packBuat tarball tanpa publishing
npm unpublishHapus versi yang dipublikasikan (dalam 72 jam)
npm deprecateTandai versi sebagai usang
.npmignoreFile yang dikecualikan dari paket yang dipublikasikan
files (package.json)Allowlist file yang disertakan dalam paket
Workspaces
Perintah Workspace
npm init -w packages/core # buat workspace npm install -w packages/core lodash # install di workspace npm run build --workspaces # jalankan di semua workspace npm run test -w packages/api # jalankan di workspace tertentu npm ls --workspaces # daftar dependensi workspace
Konfigurasi Workspace
workspaces (package.json)Array glob workspace: ["packages/*"]
-w / --workspaceTarget workspace tertentu
--workspacesJalankan perintah di semua workspace
--include-workspace-rootSertakan paket root dalam operasi workspace
npm install (root)Instal semua dependensi workspace
HoistingDependensi bersama diangkat ke root node_modules
npx
Menjalankan dengan npx
npx create-react-app my-app # jalankan tanpa menginstal npx tsc --init # jalankan bin lokal atau remote npx -p typescript tsc file.ts # tentukan paket secara eksplisit npx --yes create-next-app # lewati prompt install npx node@18 -e "console.log('hi')" # jalankan dengan Node tertentu
Opsi npx
npx cmdJalankan cmd dari node_modules/.bin lokal atau remote
npx -p pkg cmdInstal pkg, lalu jalankan cmd
npx --yes cmdKonfirmasi otomatis prompt instalasi
npx --no cmdTolak instalasi — gagal jika tidak ada lokal
npx -c 'cmd'Jalankan perintah shell dengan PATH npx
npx node@verJalankan versi Node.js tertentu
Konfigurasi
Perintah Config
npm config list # tampilkan konfigurasi saat ini npm config set registry https://r.npmjs.com/ npm config set init-author-name "Name" npm config get prefix # path install global npm config delete key # hapus nilai konfigurasi
Referensi Config
.npmrc (project)File konfigurasi per-proyek
~/.npmrcFile konfigurasi per-pengguna
registryURL registry paket
save-exacttrue untuk pin versi tepat saat install
engine-stricttrue untuk menerapkan field engines
fundfalse untuk sembunyikan pesan funding
auditfalse untuk lewati audit saat install
Pola Umum
One-Liner
npm ls --depth=0 --json | jq '.dependencies | keys[]' npm outdated --long # tampilkan tipe dan homepage npm cache clean --force # bersihkan cache npm npm explain pkg # kenapa pkg terpasang? npm exec -- envinfo --system # info sistem untuk laporan bug
Resep
Hanya lock filenpm ci — instal bersih dari package-lock.json
Periksa lisensinpx license-checker --summary
Temukan dep tak terpakainpx depcheck
Ukuran bundlenpx bundlephobia-cli pkg — periksa ukuran paket
Upgrade semuanpx npm-check-updates -u && npm install
Registry lokalnpx verdaccio — jalankan registry privat