Gunakan perintah: npm install nama paket atau npm i nama paket Paket yang diinstal secara lokal muncul di direktori node_module di bawah direktori saat ini Jika paket yang diinstal secara lokal memiliki CLI, npm akan menempatkan skrip CLI-nya di bawah node_modules/.bin dan menggunakan perintah npx untuk memanggilnya.
1.2 Instalasi global
Paket yang diinstal secara global ditempatkan di direktori global khusus. Gunakan perintah npm install --global package name atau npm i -g package name. Paket yang diinstal secara global tidak tersedia untuk semua proyek, paket ini hanya menyediakan alat CLI global. Dalam kebanyakan kasus, tidak perlu menginstal paket secara global.
1.3 Perintah instalasi
Tergantung pada lingkungan produksi npm saya nama paket npm i --simpan nama paket npm i -S nama paket Instal dependensi ke dalam lingkungan pengembangan npm i --save-dev nama paket npm i -D nama paket
1.4. Saat menggunakan nodejs untuk mengimpor modul, jika jalur modul tidak dimulai dengan ./ atau.../, node akan mengira bahwa modul yang diimpor berasal dari direktori node_modules.
1.5.skrip npm
Konfigurasikan perintah CLI yang umum digunakan di bidang skrip package.json dan gunakan nama skrip npm run untuk menjalankan skrip. npx dapat dihilangkan dalam skrip.
2. Masalah sebelumnya dengan npm:
Direktori ketergantungan sangat bertumpuk: Di masa lalu, ketergantungan npm bertumpuk, dan sistem Windows tidak dapat mendukung direktori yang terlalu dalam.
Kecepatan pengunduhan lambat: Karena level bersarang yang dalam, pengunduhan paket hanya dapat dilakukan secara serial; beberapa paket dengan versi yang sama diunduh berulang kali.
Output konsolnya rumit: mencetak banyak detail paket
Masalah transplantasi proyek: Dulu, hanya ada file konfigurasi package.json, tetapi tidak ada file package-lock.json.
3. Munculnya benang karena mempunyai keunggulan sebagai berikut :
Gunakan struktur direktori datar
unduhan paralel
Gunakan cache lokal
Sederhanakan informasi keluaran konsol dan hanya keluaran informasi penting
Gunakan file kunci benang untuk mencatat ketergantungan yang tepat
4. Dipengaruhi oleh benang, npm6 memanfaatkan konsep tingkat lanjut benang dan melakukan pengoptimalan berikut:
Perataan direktori
unduhan paralel
cache lokal
Gunakan package-lock.json untuk mencatat dependensi yang tepat
Menambahkan sejumlah besar alias perintah
Npx bawaan, Anda dapat memulai alat CLI lokal
Sangat menyederhanakan keluaran konsol
5. cnpm
server registri npm berada di luar negeri, yang dapat menyebabkan pengunduhan lambat atau gagal. Di masa lalu, npm tidak menyediakan fungsi memodifikasi registri, Taobao membangun registri sendiri, yaitu cermin npm Taobao. Taobao juga menyediakan alat CLI cnpm.
6. pnpm
Seperti npm dan benang, cache masih digunakan untuk menyimpan paket yang diinstal.Gunakan pnpm-lock.yaml untuk mencatat versi ketergantungan terperinci
Berbeda dari benang dan npm, pnpm menggunakan tautan simbolik dan tautan keras untuk menempatkan ketergantungan, menghindari penyalinan file, meningkatkan efisiensi instalasi, dan sangat mengurangi penggunaan ruang disk.
Karena penggunaan symbolic link dan hard link, pnpm dapat menghindari masalah jalur yang terlalu panjang pada sistem Windows, sehingga menggunakan ketergantungan pohon. Karena ketergantungan pohon, proyek hanya dapat menggunakan ketergantungan langsung, bukan ketergantungan tidak langsung.
7. Prinsip pnpm:
Inti dari sebuah file: File sebenarnya adalah sebuah pointer yang menunjuk ke alamat penyimpanan eksternal (hard disk, USB flash drive). Menghapus file sebenarnya menghapus penunjuk, jadi sangat cepat.
Salinan file: Salin konten yang ditunjuk oleh penunjuk file, lalu buat penunjuk baru yang menunjuk ke konten baru.
Tautan keras: Menyalin file Penunjuk A ke file lain Penunjuk B. File B adalah tautan keras ke file A.
Tautan simbolik (soft link): Buat tautan simbolik B untuk file atau folder A, lalu B menunjuk ke A.
Pintasan: Mirip dengan tautan simbolik, ini adalah metode tautan yang didukung oleh Windows pada masa-masa awal. Ini tidak hanya sebuah penunjuk, tetapi juga berisi berbagai informasi seperti izin, kompatibilitas, metode startup, dll. Pintasan bersifat unik untuk sistem Windows dan tidak digunakan di seluruh platform.
Perbedaan antara tautan simbolis dan tautan keras:
Tautan keras hanya dapat menghubungkan file, sedangkan tautan simbolis dapat menghubungkan file dan direktori.
Setelah koneksi selesai, hard link hanya dikaitkan dengan konten file dan tidak ada hubungannya dengan link sebelumnya. Tautan simbolik selalu dikaitkan dengan file yang ditautkan sebelumnya dan tidak terkait langsung dengan file konten.