Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

青灯夜游
Lepaskan: 2022-08-25 11:00:50
ke hadapan
1890 orang telah melayarinya

Artikel ini akan membawa anda melalui dua pengurus pakej yang berkuasa Node.js: npm dan yarn saya harap ia akan membantu anda.

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

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 yarnini pihak ketiga node包管理器 dan domestik npmCermin Taobao (cnpm) yang dikemas kini serentak dengan

gudang.

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!

1. Penggunaan npm

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, npmMenyediakan 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 pakej NodeJS

pengurusan pakej ditunjukkan di dalamnya Ia adalah gudang NodeJS yang menyimpan dan menguruskan pelbagai pakej perisian NodeJS

alat pengedaran ditunjukkan dalam menggunakan npm的指令 untuk memuat turun npmPakej dalam gudang

Apabila kita mengkonfigurasi persekitaran NodeJS, npm指令模块 dipasang bersama dengan NodeJS Kita boleh menjalankan npm -v melalui terminal untuk melihat pemasangan Versi:

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

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
Salin selepas log masuk

@latest mewakili pemasangan versi terkini, -g mewakili pemasangan global, arahan npm 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

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

Jadiapa yang biasa kita panggil npm hanya merujuk kepada modul arahan npm (pakej bernama npm)

Tetapi sebenarnya, perkataan npm merujuk kepada kedua-dua npm指令模块 dan juga npmNodeJSgudang sumber terbuka itu sendiri
jadi kami memilikinyanpm (Npm ini mewakili gudang sumber terbuka NodeJS) Muat turun npm (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

    Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

  • 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:

  1. install boleh disingkatkan sebagai i, contohnya: npm install axios boleh disingkatkan sebagai npm i axios

  2. uninstall boleh disingkatkan sebagai un

  3. Tambah aksara @ selepas pakej nama untuk menentukan versi pakej, seperti: npm i md5@1Muat 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 dependenciesdevDependencies

Selain itu, sebenarnya terdapat:

  • ,peerDependencies
  • optionalDependencies
  • bundledDependencies / bundleDependencies
, termasuk beberapa tanggungan, ini semua dalam

Dirakam: package.json

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

Anda boleh menyemak artikel saya yang lain: Perbezaan antara npm install -g/–save/–save-dev

dependenciesdevDependencies

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 menggunakan

dan

akan menimpa, jadi jangan tulis

optionalDependencies /

optionalDependenciesoptionalDependencies 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

atau
, jika tidak, ia akan dibungkus Ralat akan dilaporkan<.>

package.json中需要注意的包版本问题

通过npm下载的所有包的版本信息都会记录在package.json

在运行npm i时就会根据package.json中记录的包信息进行下载,它的下载规则如下:

  • 包版本以^开头时(默认情况),会锁定大版本

       // package.json
      "dependencies": {
        "md5": "^2.1.0" // ^开头的
      },
    Salin selepas log masuk

    通过npm i将会安装md5 2.x.x的最新版本(2大版本下的最新版本),并不一定是2.1.0,还可能是2.3.0

  • 包版本以~开头时,会锁定到第二个大版本

       // package.json
      "dependencies": {
        "md5": "~2.1.0"
      },
    Salin selepas log masuk

    通过npm i将会安装md5 2.1.x的最新版本(2.1版本下的最新版本),并不一定是2.1.0,还可能是2.1.1

  • 包版本为*,会锁定到最新版本

      // package.json
      "dependencies": {
        "md5": "*"
      },
    Salin selepas log masuk

    通过npm i将会安装md5的最新版本

  • 包版本前不带前缀,会锁定到指定版本

       // package.json
      "dependencies": {
        "md5": "2.1.0"
      },
    Salin selepas log masuk

    通过npm i将会安装md5的2.1.0版本

解决npm速度慢的问题

因为npm仓库在国外,我们在国内使用npm指令下载这个国外仓库的内容速度会比较慢

这时我们就可以运行以下指令将npm的仓库源切换到国内的淘宝镜像(cnpm) 的源:

npm config set registry https://registry.npmmirror.com
Salin selepas log masuk

使用npm config get registry查看当前源:

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

往后再使用npm时就会自动从国内的淘宝镜像仓库下载了,速度就会很快

淘宝镜像之前的源地址为http://registry.npm.taobao.org,现在更改为了http://registry.npmmirror.com,查看详情

但我们这样通过修改npm的配置进行源的切换难免会有点麻烦,我们可以全局安装一个nrm来帮助我们快速的切换npm

使用nrm快速切换npm源

全局安装nrm

npm install -g nrm
Salin selepas log masuk

执行nrm ls查看可切换的npm源

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

使用npm use 切换源,如切换到淘宝源:nrm use taobao

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

使用nrm test 源名测试相应源的响应时间:

Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

可以看到淘宝源的响应速度要比npm的默认源快很多

中国npm镜像:cnpm

cnpm是一个完整的npmjs.org镜像,可以用它代替官方版本

cnpm与官方版本的同步频率为10分钟一次,cnpm官网

下载cnpm

 npm install -g cnpm --registry=https://registry.npmmirror.com
Salin selepas log masuk

cnpm就是淘宝镜像,上面我们使用淘宝镜像只是将npm的源更改为淘宝镜像(cnpm)的源(这个源其实就是指仓库的地址),之后还是通过npm指令进行使用

而这里是直接下载cnpm这个完整镜像,之后就可以使用cnpm指令而不是npm指令:

cnpm installcnpm i axios -g

// ....
Salin selepas log masuk

cnpm的指令与npm的指令完全相同,使用时直接使用cnpm代替npm就行

二、yarn的使用

yarn是Facebook发布的一款依赖管理工具,它比npm更快、更高效

安装:

npm install -g yarn
Salin selepas log masuk

更新yarn:

yarn set version latest
yarn set version from sources
Salin selepas log masuk

优点

  • 速度超快
    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

    Ketahui tentang dua pengurus pakej Node yang berkuasa: npm dan yarn

  • 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

yarnAkhiran perintah

  • --dev: Tentukan kebergantungan () di bawah persekitaran pembangunan devDependencies, disingkatkan sebagai -D
  • --peer: Tentukan Ketergantungan teras (peerDependencies )
  • --optional: Tentukan pergantungan pilihan (optionalDependencies )

Kesimpulan

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!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan