Artikel ini akan membawa Anda melalui dua manajer paket Node.js yang hebat: npm dan benang. Saya harap ini dapat membantu Anda!
Kursus pengenalan singkat Node.js: masuk untuk belajar
Langkah pertama untuk mempelajari Node
adalah memahami manajer paket node : npm
. Saya yakin semua orang sudah familiar dengan npm
, karena kita sering menggunakannya untuk mengunduh beberapa sumber daya paket.
Namun karena pustaka sumber daya npm
(https://www.npmjs.com/) berada di luar negeri, kecepatan pengunduhan sumber daya yang menggunakannya relatif lambat, sehingga node包管理器
pihak ketiga seperti yarn
dan domestik disinkronkan dengan npm
gudang. Cermin Taobao yang diperbarui (cnpm)
Selanjutnya kita akan mempelajari konten tersebut secara mendalam, mari kita mulai!
Kolom seri Node sudah mulai diperbarui. Ikuti blogger, berlangganan kolom, dan pelajari Node tanpa tersesat!
apa itu npm
Sebelum menggunakan npm
, Anda harus memahami terlebih dahulu apa itu npm
. Pada artikel pertama kolom seri Node [Node.js |. Satu-satunya cara dari front-end ke full stack] disebutkan npm
adalah gudang sumber terbuka Node
dan merupakan gudang open source terbesar di dunia
Alamat gudang ini adalah: https://www.npmjs.com/
Pada 17 Maret 2020, npm
menyajikan 1,3 juta paket kepada sekitar 12 juta pengembang, yang mengunduhnya 75 miliar kali per bulan
Untuk mengunduh dan menggunakan sumber daya di gudang npm
, Anda dapat menggunakan npm的指令
(dimulai dengan npm
, seperti npm i axios
download axios
) atau menggunakan instruksi pihak ketiga lainnya ( Node包管理器
pihak ketiga), seperti benang, dll. .
Pernyataan resmi:
npm
adalah alat manajemen dan distribusi paket untukNodeJS
Manajemen paket tercermin dalam kenyataan bahwa ini adalah gudang
NodeJS
, yang menyimpan dan mengelola berbagai paket perangkat lunakNodeJS
.Alat distribusi diwujudkan dalam penggunaan
npm的指令
untuk mengunduh paket di gudangnpm
.
Saat kita mengkonfigurasi lingkungan NodeJS
, npm指令模块
diinstal bersama dengan NodeJS
. Kita dapat menjalankan npm -v
melalui terminal untuk melihat versi yang diinstal:
Namun jika versi npm
yang diinstal secara default terlalu lama, Anda juga dapat menginstal dan memperbarui npm sendiri secara manual :
npm dan npm@terbaru -g
@latest
mewakili instalasi versi terbaru,-g
mewakili instalasi global, instruksinpm
ini akan dibahas nanti.
Hal ajaib dapat ditemukan di atas. Kami menginstal npm
melalui npm
. Bisakah kami menginstalnya sendiri?
Ini sebenarnya mudah dimengerti. npm的指令模块
juga disimpan npm
gudang npm
sebagai sebuah paket, dan nama paket ini adalah npm
.
Jadi yang biasa kita sebut npm hanya mengacu pada modul perintah npm (paket bernama npm)
Namun kenyataannya, kata
npm
mengacu padanpm指令模块
, dan juga mengacu padanpm
gudang open sourceNodeJS
itu sendiri, jadi kita mendownloadnpm
dinpm
(npm ini mewakili gudang open source NodeJS) (npm ini mewakili open source gudang sumber bernama npm Paket ini, paket ini adalah modul perintah npm)
npm perintah umum
Ada banyak instruksi
npm
. Di sini kami hanya mencantumkan yang umum digunakan. Untuk informasi lebih lanjut, silakan lihat dokumentasi resmi npm.
npm init
: menghasilkan package.json
npm install
: Unduh semua sumber daya yang dicatat di package.json
npm install 包名
: Unduh paket yang ditentukan ke direktori saat ini
npm uninstall 包名
: menghapus instalasi paket tertentu di direktori saat ini
npm update 包名
: Perbarui paket yang ditentukan di direktori saat ini. Jika tidak ada nama paket yang ditambahkan, semua paket di direktori saat ini akan diperbarui.
npm outdated 包名
: Periksa apakah paket yang ditentukan di direktori saat ini sudah usang . Jika tidak ada nama paket yang ditambahkan, semua paket di direktori saat ini akan diperiksa.
npm info 包名
: Dapatkan informasi detail tentang paket di direktori saat ini
npm list
: Melihat semua paket yang diinstal di direktori saat ini dan dependensinya serta menampilkan nomor versi ( list
dapat disingkat ls
)
npm list 包名
: Melihat nomor versi paket tertentu yang diinstal di direktori saat ini ( list
dapat disingkat ls
)
Beberapa poin tambahan:
install
bisa disingkat i
, seperti: npm install axios
bisa disingkat npm i axios
uninstall
bisa disingkat un
Tambahkan simbol @
setelah nama paket untuk menentukan versi paket, seperti: npm i md5@1
mengunduh md5 versi 1, npm i md5@latest
berarti mengunduh md5 versi terbaru
akhiran perintah npm
-g
: Tentukan lingkungan global
Perintah
npm
secara default beroperasi di direktori saat ini. Menambahkan-g
menentukan pengoperasian di lingkungan global , seperti disebutkan di atas, instal versi terbaru npm secara global:npm i npm@latest -g
. .
--save
dapat disingkat -s
: menentukan dependensi di lingkungan produksi (dicatat dalam dependencies
)
Setelah versi
npm5
, defaultnya adalah--save
. Misalnya, axios perlu diinstal di lingkungan produksi dan lingkungan pengembangan:npm i axios -s
--save-dev
dapat disingkat -D
: menentukan dependensi di lingkungan pengembangan (dicatat di devDependencies
)
Untuk menginstal babel yang tidak diperlukan di lingkungan produksi (hanya digunakan di lingkungan pengembangan):
npm i babel -D
--save-prod
dapat disingkat -P
: sama dengan --save
--save-optional
dapat disingkat -O
: menentukan dependensi opsional (dicatat dalam optionalDependencies
)
--no-save
: tidak akan dicatat di package.json
Untuk fungsi spesifik dan perbedaan
-g,--save,--save-dev
silakan lihat artikel saya: Perbedaan antara npm install -g/–save/–save-dev
Akhiran perintah npm juga dapat ditempatkan di depan nama paket:
npm i -g npm@latest
Manajemen paket ketergantungan
Di npm
, dependensi yang terkenal adalah: dependencies
dan devDependencies
Selain itu, sebenarnya mencakup:
peerDependencies
,
optionalDependencies
bundledDependencies / bundleDependencies
Beberapa dependensi, termasuk ini, dicatat di package.json
:
Di atas kami telah menyebutkan dependensi ini ketika berbicara tentang sufiks perintah npm . Berikut adalah penjelasan rinci tentang apa yang diwakilinya:
dependencies
dan devDependencies
Lihat artikel saya yang lain: Perbedaan antara npm install -g/–save/–save-dev
peerDependencies
Anda dapat membaca artikel dari orang besar: Memahami Ketergantungan Sejawat dalam satu artikel
optionalDependencies
Dependensi opsional. Jika ada beberapa paket dependen yang masih dapat berjalan meskipun instalasi gagal atau Anda ingin npm terus berjalan, Anda dapat menggunakan
optionalDependencies
Selain itu,optionalDependencies
akan menimpa dependensi dengan nama yang sama didependencies
, jadi jangan tuliskan di kedua tempat.
bundledDependencies
/ bundleDependencies
Ketergantungan pengemasan,
bundledDependencies
adalah objek array yang berisi nama paket dependen. Saat diterbitkan, paket-paket dalam objek ini akan dikemas ke dalam paket rilis final. Paket-paket dalam array harus dideklarasikan terlebih dahulu dalamdevDependencies
ataudependencies
, jika tidak, pengemasan akan melaporkan kesalahan.
Masalah versi paket yang perlu diperhatikan di package.json
Informasi versi semua paket yang diunduh melalui npm
akan dicatat di package.json
Saat menjalankan npm i
itu akan diunduh berdasarkan informasi paket yang tercatat di package.json
. Aturan pengunduhannya adalah sebagai berikut:
Ketika versi paket dimulai dengan ^
(default) , versi besar akan dikunci
// paket.json "ketergantungan": { "md5": "^2.1.0" // } dimulai dengan ^,
Melalui
npm i
versi terbarumd5
2.xx
(versi terbaru di bawah dua versi utama) akan diinstal, yang belum tentu 2.1.0, tetapi mungkin juga 2.3.0
Ketika versi paket dimulai dengan ~
, maka akan dikunci ke versi utama kedua
// paket.json "ketergantungan": { "md5": "~2.1.0" },
Melalui
npm i
akan menginstal versi terbarumd5
2.1.x
(versi terbaru di bawah versi 2.1), yang belum tentu 2.1.0, tetapi bisa juga 2.1.1
Versi paketnya adalah *
dan akan dikunci ke versi terbaru
// paket.json "ketergantungan": { "md5": "*" },
Melalui
npm i
akan menginstalmd5
versi terbaru
Jika tidak ada awalan sebelum paket version , maka akan dikunci ke versi yang ditentukan.
// paket.json "ketergantungan": { "md5": "2.1.0" },
Melalui
npm i
akan menginstalmd5
versi 2.1.0
Selesaikan masalah kecepatan npm yang lambat
Karena gudang npm
berada di luar negeri, maka akan lebih lambat bagi kita untuk menggunakan perintah npm
di China untuk mengunduh konten gudang asing ini.
Saat ini, kita dapat menjalankan perintah berikut untuk mengalihkan sumber gudang npm
ke sumber gambar Taobao domestik (cnpm) :
npm config mengatur registri https://registry.npmmirror.com
Gunakan npm config get registry
untuk melihat sumber saat ini:
Saat Anda menggunakan npm
di masa mendatang, npm akan diunduh secara otomatis dari gudang mirror Taobao domestik, dan kecepatannya akan sangat cepat.
Alamat sumber mirror Taobao sebelumnya adalah http://registry.npm.taobao.org, tetapi sekarang telah diubah menjadi http://registry.npmmirror.com Lihat detailnya
Namun pasti akan sedikit merepotkan bagi kita untuk berpindah sumber dengan memodifikasi konfigurasi npm
. Kita dapat menginstal nrm
secara global untuk membantu kita berpindah sumber npm
dengan cepat.
Gunakan nrm untuk mengganti sumber npm dengan cepat
Instal nrm secara global:
npm instal -g nrm
Jalankan nrm ls
untuk melihat sumber npm yang dapat dialihkan :
Gunakan npm use
untuk berpindah sumber , seperti beralih ke sumber Taobao: nrm use taobao
Gunakan nrm test 源名
untuk menguji waktu respons sumber terkait:
Anda dapat melihat bahwa kecepatan respons sumber Taobao jauh lebih cepat daripada sumber default npm
.
Cermin npm Cina: cnpm
cnpm
adalah mirror npmjs.org lengkap , yang dapat digunakan sebagai pengganti versi resmi
Frekuensi sinkronisasi antara
cnpm
dan versi resminya adalah setiap 10 menit sekali, situs resmi cnpm
Unduh cnpm
:
npm instal -g cnpm --registry=https://registry.npmmirror.com
cnpm adalah cermin Taobao . Saat kita menggunakan sumber cermin Taobao di atas, kita cukup mengubah sumber npm
ke sumber cermin Taobao ( cnpm
) (sumber ini sebenarnya mengacu pada alamat gudang), dan kemudian menggunakannya melalui perintah npm
.
Dan berikut ini untuk langsung mendownload gambar cnpm
secara lengkap, lalu Anda dapat menggunakan perintah cnpm
sebagai ganti perintah npm
:
cnpm installcnpm dan aksio -g // ....
Instruksi
cnpm
sama persis dengannpm
. Cukup gunakan cnpm daripada npm saat menggunakannya.
benang adalah alat manajemen ketergantungan yang dirilis oleh Facebook yang lebih cepat dan efisien daripada npm
Memasang:
npm install -g benang
Perbarui benang:
set benang versi terbaru versi set benang dari sumber
keuntungan
sangat cepat
yarn
menyimpan cache setiap paket yang diunduh sehingga tidak perlu mengunduhnya lagi saat menggunakannya lagi. Juga memanfaatkan unduhan paralel untuk memaksimalkan pemanfaatan sumber daya, sehingga instalasi lebih cepat
Sangat aman <br/> Sebelum mengeksekusi kode, yarn
akan memverifikasi integritas setiap paket instalasi melalui suatu algoritma
Instruksi umum benang
yarn init
: Inisialisasi proyek dan buat file package.json
. Langkah-langkah pembuatannya kira-kira sama dengan npm init
yarn help
: menampilkan daftar perintah
yarn install
: Unduh semua sumber daya yang tercatat di package.json
, yang dapat disingkat menjadi yarn
yarn add 包名
: unduh paket yang ditentukan ke direktori saat ini
yarn remove 包名
: hapus instalan paket yang ditentukan di direktori saat ini
yarn upgrade 包名
: Perbarui paket yang ditentukan di direktori saat ini Anda dapat menambahkan @指定版本号
setelah nama paket untuk menentukan versi yang perlu diperbarui.
akhiran perintah yarn
--dev
: Menentukan dependensi di lingkungan pengembangan ( devDependencies
), disingkat -D
--peer
: Tentukan dependensi inti ( peerDependencies
)
--optional
: Tentukan dependensi opsional ( optionalDependencies
)
Artikel ini memperkenalkan npm
dan yarn
, serta nrm
, cnpm
, dll. yang berasal dari npm
Blogger telah menggunakan kombinasi npm + nrm untuk berpindah sumber , karena hal ini tidak hanya menjamin kecepatan yang cepat, namun juga memungkinkan perpindahan sumber dengan mudah tanpa harus mengunduh paket tambahan seperti cnpm
dan yarn
Baik npm
maupun yarn
memiliki banyak konten. Artikel ini hanya menjelaskan konten yang paling umum digunakan. Jika Anda ingin tahu lebih banyak, Anda dapat mengunjungi situs resmi terkait untuk melihatnya.