Artikel ini akan membawa anda melalui dua pengurus pakej yang berkuasa Node.js: npm dan yarn saya harap ia akan membantu anda.
Langkah pertama untuk belajar Node
ialah memahami pengurus pakej nod : npm
, untuk npm
Saya percaya semua orang sudah biasa dengannya, kerana kami sering menggunakannya untuk memuat turun beberapa sumber pakej
Tetapi kerana perpustakaan sumber npm
(https://www.npmjs.com/) berada di luar negara, gunakannya untuk memuat turun sumber Kelajuan agak perlahan, jadi terdapat yarn
ini pihak ketiga node包管理器
dan domestik npm
Cermin Taobao (cnpm) yang dikemas kini serentak dengan
Seterusnya kita akan mempelajari kandungan ini secara mendalam, mari mulakan!
Lajur siri Node telah mula dikemas kini. Ikuti blogger, langgan lajur dan pelajari Node tanpa tersesat!
Apakah itu npm
Penggunaannpm
Sebelum anda memulakan, anda mesti terlebih dahulu memahami apa itu npm
Dalam artikel pertama lajur siri Node [Node.js | Satu-satunya cara dari bahagian hadapan hingga timbunan penuh], disebutkan bahawa npm
ialah gudang sumber terbuka Node
Dan ia adalah gudang sumber terbuka terbesar di dunia
Alamat gudang ini ialah: https://www.npmjs.com/
Mulai 17 Mac 2020, npm
Menyediakan 1.3 juta pakej kepada kira-kira 12 juta pembangun yang memuat turunnya 75 bilion kali sebulan
Untuk memuat turun dan menggunakan sumber dalam npm
gudang, anda boleh menggunakan npm的指令
(bermula dengan npm
, seperti npm i axios
muat turun axios
) atau gunakan arahan pihak ketiga yang lain (pihak ketiga Node包管理器
) , seperti benang, dsb.
Kenyataan rasmi:
npm
ialah alat pengurusan dan pengedaran pakejNodeJS
pengurusan pakej ditunjukkan di dalamnya Ia adalah gudang
NodeJS
yang menyimpan dan menguruskan pelbagai pakej perisianNodeJS
alat pengedaran ditunjukkan dalam menggunakan
npm的指令
untuk memuat turunnpm
Pakej dalam gudang
Apabila kita mengkonfigurasi persekitaran NodeJS
, npm指令模块
dipasang bersama dengan NodeJS
Kita boleh menjalankan npm -v
melalui terminal untuk melihat pemasangan Versi:
Tetapi jika versi lalai yang dipasang npm
terlalu lama, anda juga boleh memasang dan mengemas kini npm secara manual diri sendiri:
npm i npm@latest -g
@latest
mewakili pemasangan versi terkini,-g
mewakili pemasangan global, arahannpm
ini akan dibincangkan kemudian
Satu ajaib perkara boleh didapati di atas, kami Pasang npm
melalui npm
, pasang sendiri?
Ini sebenarnya mudah difahami npm的指令模块
juga disimpan sebagai pakej dalam npm
gudang, dan nama pakej ini ialah npm
alamat npm
: https://. www.npmjs.com/package/npm
Jadiapa yang biasa kita panggil npm hanya merujuk kepada modul arahan npm (pakej bernama npm)
Tetapi sebenarnya, perkataan
npm
merujuk kepada kedua-duanpm指令模块
dan juganpm
NodeJS
gudang sumber terbuka itu sendiri
jadi kami memilikinyanpm
(Npm ini mewakili gudang sumber terbuka NodeJS) Muat turunnpm
(Npm ini mewakili pakej bernama npm, pakej ini ialah modul arahan npm)
arahan biasa npm
npm
Terdapat banyak arahan berikut yang biasa digunakan untuk maklumat lanjut, lihat dokumentasi rasmi npm
npm init
: Janapackage.json
npm install
: Muat turunpackage.json
Semua sumber yang direkodkan dalam
npm install 包名
: Muat turun pakej yang ditentukan ke direktori semasa
npm uninstall 包名
: Nyahpasang pakej yang ditentukan dalam direktori semasa
npm update 包名
: Kemas kini pakej yang ditentukan dalam direktori semasa Jika tiada nama pakej ditambahkan, semua pakej dalam direktori semasa akan dikemas kini
npm outdated 包名
: Semak sama ada pakej yang dinyatakan dalam direktori semasa sudah lapuk Jika tiada nama pakej ditambahkan, semak semua pakej dalam direktori semasa
npm info 包名
: Dapatkan maklumat terperinci pakej dalam direktori semasa
npm list
: Lihat pakej yang dipasang dalam direktori semasa Semua pakej dan kebergantungannya dan paparkan nombor versi (list
boleh disingkatkan sebagai ls
)
npm list 包名
: Lihat semasa Nyatakan nombor versi pakej yang dipasang dalam direktori (list
boleh disingkatkan sebagai ls
)
Beberapa tambahan:
install
boleh disingkatkan sebagai i
, contohnya: npm install axios
boleh disingkatkan sebagai npm i axios
uninstall
boleh disingkatkan sebagai un
Tambah aksara @
selepas pakej nama untuk menentukan versi pakej, seperti: npm i md5@1
Muat turun versi 1 md5, npm i md5@latest
bermaksud muat turun versi terkini md5
npm
arahan akhiran
-g
: Tentukan persekitaran global Perintah
npm
lalai untuk beroperasi dalam direktori semasa Menambah-g
menentukan operasi dalam persekitaran global, seperti pemasangan global yang disebutkan di atas: Versi terkini npm:npm i npm@latest -g
, jadi anda boleh menggunakan npm dalam mana-mana direktori
--save
boleh disingkatkan sebagai -s
: Tentukan kebergantungan di bawah persekitaran pengeluaran (dirakam dalam dependencies
). Selepas versi
npm5
, lalai ialah--save
, jika dipasang dalam persekitaran pengeluaran dan Axios diperlukan untuk persekitaran pembangunan:npm i axios -s
--save-dev
boleh disingkatkan sebagai -D
: nyatakan persekitaran pembangunan (dirakam dalam ) devDependencies
Jika anda memasang babel yang tidak diperlukan dalam persekitaran pengeluaran (hanya digunakan dalam persekitaran pembangunan):
npm i babel -D
boleh disingkatkan sebagai --save-prod
-P
: sama seperti --save
Boleh disingkatkan sebagai --save-optional
-O
: Nyatakan kebergantungan pilihan (dirakam dalam ) optionalDependencies
--no-save
: Ia tidak akan direkodkan dalam package.json
Untuk fungsi dan perbezaan khusus, sila lihat artikel saya: npm install -g/–save/–save Perbezaan antara -dev
-g,--save,--save-dev
akhiran arahan npm juga boleh diletakkan di hadapan nama pakej:
npm i -g npm@latest
Pengurusan pakej pergantungan
Dalam, kebergantungan yang terkenal ialah: npm
dan dependencies
devDependencies
peerDependencies
optionalDependencies
bundledDependencies / bundleDependencies
Dirakam: package.json
Anda boleh menyemak artikel saya yang lain: Perbezaan antara npm install -g/–save/–save-dev
dependencies
devDependencies
Anda boleh melihat artikel oleh bos: Memahami PeerDependencies dalam satu artikel
peerDependencies
Kebergantungan pilihan, jika terdapat beberapa pakej bergantung yang masih boleh dijalankan walaupun pemasangan gagal atau anda mahu npm terus berjalan, anda boleh menggunakandan
akan menimpa, jadi jangan tulis
optionalDependencies
/
, jika tidak, ia akan dibungkus Ralat akan dilaporkan<.>atau
optionalDependencies
optionalDependencies
kebergantungan pakej di kedua-dua tempat,dependencies
ialah objek tatasusunan yang mengandungi nama pakej bergantung Apabila menerbitkan, pakej dalam objek ini akan dibungkus ke dalam pakej keluaran akhir Pakej dalam tatasusunan mesti diisytiharkan terlebih dahulu dalam
package.json中需要注意的包版本问题
通过npm
下载的所有包的版本信息都会记录在package.json
中
在运行npm i
时就会根据package.json
中记录的包信息进行下载,它的下载规则如下:
包版本以^
开头时(默认情况),会锁定大版本
// package.json "dependencies": { "md5": "^2.1.0" // ^开头的 },
通过
npm i
将会安装md5
2.x.x
的最新版本(2大版本下的最新版本),并不一定是2.1.0,还可能是2.3.0
包版本以~
开头时,会锁定到第二个大版本
// package.json "dependencies": { "md5": "~2.1.0" },
通过
npm i
将会安装md5
2.1.x
的最新版本(2.1版本下的最新版本),并不一定是2.1.0,还可能是2.1.1
包版本为*
,会锁定到最新版本
// package.json "dependencies": { "md5": "*" },
通过
npm i
将会安装md5
的最新版本
包版本前不带前缀,会锁定到指定版本
// package.json "dependencies": { "md5": "2.1.0" },
通过
npm i
将会安装md5
的2.1.0版本
解决npm速度慢的问题
因为npm
仓库在国外,我们在国内使用npm
指令下载这个国外仓库的内容速度会比较慢
这时我们就可以运行以下指令将npm
的仓库源切换到国内的淘宝镜像(cnpm) 的源:
npm config set registry https://registry.npmmirror.com
使用npm config get registry
查看当前源:
往后再使用npm
时就会自动从国内的淘宝镜像仓库下载了,速度就会很快
淘宝镜像之前的源地址为http://registry.npm.taobao.org,现在更改为了http://registry.npmmirror.com,查看详情
但我们这样通过修改npm
的配置进行源的切换难免会有点麻烦,我们可以全局安装一个nrm
来帮助我们快速的切换npm
源
使用nrm快速切换npm源
全局安装nrm:
npm install -g nrm
执行nrm ls
可查看可切换的npm源:
使用npm use
切换源,如切换到淘宝源:nrm use taobao
使用nrm test 源名
测试相应源的响应时间:
可以看到淘宝源的响应速度要比npm
的默认源快很多
中国npm镜像:cnpm
cnpm
是一个完整的npmjs.org镜像,可以用它代替官方版本
cnpm
与官方版本的同步频率为10分钟一次,cnpm官网
下载cnpm
:
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm就是淘宝镜像,上面我们使用淘宝镜像源只是将npm
的源更改为淘宝镜像(cnpm
)的源(这个源其实就是指仓库的地址),之后还是通过npm
指令进行使用
而这里是直接下载cnpm
这个完整镜像,之后就可以使用cnpm
指令而不是npm
指令:
cnpm installcnpm i axios -g // ....
cnpm
的指令与npm
的指令完全相同,使用时直接使用cnpm代替npm就行
yarn是Facebook发布的一款依赖管理工具,它比npm
更快、更高效
安装:
npm install -g yarn
更新yarn:
yarn set version latest yarn set version from sources
优点
速度超快yarn
缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快
Sangat selamat
Sebelum melaksanakan kod, yarn
akan mengesahkan integriti setiap pakej pemasangan melalui algoritma
arahan biasa benang
yarn init
: Mulakan projek, jana fail package.json
, langkah penjanaan adalah lebih kurang sama sebagai npm init
yarn help
: Paparkan senarai arahan
yarn install
: Muat turun rekod dalam package.json
Semua sumber boleh disingkatkan sebagai yarn
yarn add 包名
: Muat turun pakej yang ditentukan oleh ke direktori semasa
yarn remove 包名
: Nyahpasangpakej yang dinyatakan dalam direktori semasa
yarn upgrade 包名
: Kemas kinipakej yang dinyatakan dalam direktori semasa, pakej Anda boleh menambah @指定版本号
selepas nama untuk menentukan versi yang anda perlu kemas kini kepada
yarn
Akhiran perintah
--dev
: Tentukan kebergantungan () di bawah persekitaran pembangunan devDependencies
, disingkatkan sebagai -D
--peer
: Tentukan Ketergantungan teras (peerDependencies
) --optional
: Tentukan pergantungan pilihan (optionalDependencies
) Artikel ini memperkenalkan npm
dan yarn
, serta nrm
terbitan npm, cnpm
, dsb.
blogger telah menggunakan kombinasi sumber suis npm nrm , kerana ini bukan sahaja memastikan kelajuan pantas, tetapi juga memudahkan penukaran sumber tanpa perlu memuat turun pakej tambahan seperti cnpm
, yarn
npm
dan yarn
mempunyai banyak kandungan Artikel ini hanya menerangkan kandungan yang paling biasa digunakan Jika anda ingin mengetahui lebih lanjut, anda boleh pergi ke tapak web rasmi yang berkaitan untuk melihat
Untuk lebih banyak pengetahuan berkaitan nod, sila Lawati: tutorial nodejs!
Atas ialah kandungan terperinci Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!