成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Node包管理器npm和yarn怎么使用

這篇文章主要介紹“Node包管理器npm和yarn怎么使用”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Node包管理器npm和yarn怎么使用”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為洮北企業(yè)提供專業(yè)的網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,洮北網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

Node包管理器npm和yarn怎么使用

一、npm的使用

npm是什么

使用npm前首先要了解什么是npm,npmNode的開源倉庫,并且是全球最大的開源倉庫

截至2020年3月17日,npm為大約1200萬開發(fā)人員提供了130萬個軟件包,這些開發(fā)人員每月下載這些軟件包達(dá)750億次

要想去下載使用npm倉庫里面的資源可以使用npm的指令npm開頭的,如npm i axios 下載axios)或使用其它第三方的指令(第三方的Node包管理器),如yarn等

官方說法:npmNodeJS的包管理和分發(fā)工具

包管理就體現(xiàn)在它是個NodeJS的倉庫,存放并管理著NodeJS的各種軟件包

分發(fā)工具就體現(xiàn)在使用npm的指令去下載npm倉庫里的包

在我們配置NodeJS環(huán)境時,npm指令模塊是隨著NodeJS一起安裝的,我們可以通過終端運行npm -v 查看安裝的版本:

Node包管理器npm和yarn怎么使用

但如果默認(rèn)安裝的npm版本太老,你也可以自己手動安裝更新npm

npm i npm@latest -g

@latest 代表安裝最新版本,-g代表全局安裝,這些npm指令將在后面講到

上面可以發(fā)現(xiàn)一個神奇的事情,我們正在通過npm安裝npm,自己安裝自己?

這其實很好理解,npm的指令模塊也是作為一個包存放于npm這個倉庫中的,并且這個包的名字就叫npm

Node包管理器npm和yarn怎么使用

所以我們一般稱呼的npm都只是指npm的這個指令模塊(這個名為npm的包)

但其實npm這個詞即代指了npm指令模塊,也代指了npm這個NodeJS開源倉庫本身
所以就有了我們在npm中(這個npm代表NodeJS的開源倉庫)下載npm(這個npm代表名為npm的這個包,這個包是npm的指令模塊)的說法

npm常用指令

npm的指令非常多,這里只列舉出常用的,更多信息可見npm官方文檔

  • npm init :生成package.json

    Node包管理器npm和yarn怎么使用

  • npm install下載package.json中記錄的所有資源

  • npm install 包名下載指定的包到當(dāng)前目錄下

  • npm uninstall 包名卸載當(dāng)前目錄下指定的包

  • npm update 包名更新當(dāng)前目錄下指定的包,不加包名則更新當(dāng)前目錄下所有包

  • npm outdated 包名檢查當(dāng)前目錄下指定包是否過時,不加包名則檢查當(dāng)前目錄下所有包

  • npm info 包名獲取當(dāng)前目錄下包的詳細(xì)信息

  • npm list查看當(dāng)前目錄下安裝的所有包及其依賴并顯示版本號list可簡寫為ls

  • npm list 包名查看當(dāng)前目錄下安裝的指定包的版本號list可簡寫為ls

幾點補充:

  1. install可簡寫為i,如:npm install axios可簡寫為npm i axios

  2. uninstall 可簡寫為un

  3. 在包名后加@符可指定包的版本,如:npm i md5@1下載1版本的md5,npm i md5@latest表示下載最新版本的md5

npm指令后綴

  • -g:指定全局環(huán)境

    npm指令默認(rèn)是在當(dāng)前目錄下操作,加上-g是指定在全局環(huán)境下操作,如上面提到的全局安裝npm最新版:npm i npm@latest -g,這樣在任何目錄下都能使用npm

  • --save可簡寫為-s: 指定 生產(chǎn)環(huán)境下的依賴(記錄在dependencies中)

    npm5版本之后默認(rèn)是--save,如安裝在生產(chǎn)環(huán)境和開發(fā)環(huán)境都需要用到的axios:npm i axios -s

  • --save-dev可簡寫為-D:指定開發(fā)環(huán)境下的依賴(記錄在devDependencies中)

    如安裝生產(chǎn)環(huán)境下不需要使用的babel(僅在開發(fā)環(huán)境下使用的到):npm i babel -D

  • --save-prod可簡寫為-P:與--save相同

  • --save-optional可簡寫為-O:指定可選依賴(記錄在optionalDependencies中)

  • --no-save:不會記錄在package.json

關(guān)于-g,--save,--save-dev的具體作用和區(qū)別可看我的這篇文章:npm install -g/–save/–save-dev的區(qū)別

npm指令后綴也可以放到包名的前面:npm i -g npm@latest

依賴包管理

npm 中,熟知的依賴是 :dependenciesdevDependencies

除此之外,其實還有包括 :

  • peerDependencies,

  • optionalDependencies

  • bundledDependencies / bundleDependencies

在內(nèi)的幾種依賴,這些都是在package.json中進(jìn)行記錄的:

Node包管理器npm和yarn怎么使用

上面我們說npm指令后綴時提到了這幾種依賴,這里詳細(xì)說一下它們代表什么:

dependenciesdevDependencies

peerDependencies

optionalDependencies

可選依賴,如果有一些依賴包即使安裝失敗,項目仍然能夠運行或者希望npm繼續(xù)運行,就可以使用optionalDependencies,另外optionalDependencies會覆蓋dependencies中的同名依賴包,所以不要在兩個地方都寫

bundledDependencies / bundleDependencies

打包依賴,bundledDependencies是一個包含依賴包名的數(shù)組對象,在發(fā)布時會將這個對象中的包打包到最終的發(fā)布包里,數(shù)組里面的包必須先在devDependenciesdependencies聲明過,否則打包會報錯

package.json中需要注意的包版本問題

通過npm下載的所有包的版本信息都會記錄在package.json

在運行npm i時就會根據(jù)package.json中記錄的包信息進(jìn)行下載,它的下載規(guī)則如下:

  • 包版本以^開頭時(默認(rèn)情況),會鎖定大版本

       // 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倉庫在國外,我們在國內(nèi)使用npm指令下載這個國外倉庫的內(nèi)容速度會比較慢

這時我們就可以運行以下指令將npm的倉庫源切換到國內(nèi)的淘寶鏡像(cnpm)的源:

npm config set registry https://registry.npmmirror.com

使用npm config get registry查看當(dāng)前源:

Node包管理器npm和yarn怎么使用

往后再使用npm時就會自動從國內(nèi)的淘寶鏡像倉庫下載了,速度就會很快

淘寶鏡像之前的源地址為http://registry.npm.taobao.org,現(xiàn)在更改為了http://registry.npmmirror.com,

但我們這樣通過修改npm的配置進(jìn)行源的切換難免會有點麻煩,我們可以全局安裝一個nrm來幫助我們快速的切換npm

使用nrm快速切換npm源

全局安裝nrm

npm install -g nrm

執(zhí)行nrm ls查看可切換的npm源

Node包管理器npm和yarn怎么使用

使用npm use 切換源,如切換到淘寶源:nrm use taobao

Node包管理器npm和yarn怎么使用

使用nrm test 源名測試相應(yīng)源的響應(yīng)時間:

Node包管理器npm和yarn怎么使用

可以看到淘寶源的響應(yīng)速度要比npm的默認(rèn)源快很多

中國npm鏡像:cnpm

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

cnpm與官方版本的同步頻率為10分鐘一次,cnpm官網(wǎng)

下載cnpm

 npm install -g cnpm --registry=https://registry.npmmirror.com

cnpm就是淘寶鏡像,上面我們使用淘寶鏡像只是將npm的源更改為淘寶鏡像(cnpm)的源(這個源其實就是指倉庫的地址),之后還是通過npm指令進(jìn)行使用

而這里是直接下載cnpm這個完整鏡像,之后就可以使用cnpm指令而不是npm指令:

cnpm installcnpm i axios -g

// ....

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

二、yarn的使用

yarn是Facebook發(fā)布的一款依賴管理工具,它比npm更快、更高效

安裝:

npm install -g yarn

更新yarn:

yarn set version latest
yarn set version from sources

優(yōu)點

  • 速度超快
    yarn 緩存了每個下載過的包,所以再次使用時無需重復(fù)下載。 同時利用并行下載以最大化資源利用率,因此安裝速度更快

  • 超級安全
    在執(zhí)行代碼之前,yarn 會通過算法校驗每個安裝包的完整性

yarn常用指令

  • yarn init:初始化項目,生成package.json文件,生成步驟與npm init大致相同

    Node包管理器npm和yarn怎么使用

  • yarn help:顯示命令列表

  • yarn install:下載package.json中記錄的所有資源,可簡寫為yarn

  • yarn add 包名下載指定的包到當(dāng)前目錄下

  • yarn remove 包名卸載當(dāng)前目錄下指定的包

  • yarn upgrade 包名更新當(dāng)前目錄下指定的包,包名后可加@指定版本號來指定需要更新到的版本

yarn指令后綴

  • --dev:指定開發(fā)環(huán)境下的依賴(devDependencies),簡寫為-D

  • --peer:指定核心依賴peerDependencies

  • --optional:指定可選依賴optionalDependencies

關(guān)于“Node包管理器npm和yarn怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

網(wǎng)站標(biāo)題:Node包管理器npm和yarn怎么使用
本文網(wǎng)址:http://jinyejixie.com/article20/jjpcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、關(guān)鍵詞優(yōu)化品牌網(wǎng)站設(shè)計、微信小程序、網(wǎng)站改版、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
开原市| 湘乡市| 五家渠市| 交口县| 康平县| 鄂托克前旗| 固始县| 韶关市| 井陉县| 河池市| 临汾市| 墨竹工卡县| 读书| 衡东县| 财经| 西峡县| 潞西市| 三河市| 安吉县| 钟祥市| 奎屯市| 高平市| 浮山县| 东丰县| 满洲里市| 公安县| 将乐县| 楚雄市| 修文县| 开江县| 当阳市| 湛江市| 江西省| 五大连池市| 丰顺县| 常熟市| 墨脱县| 百色市| 德安县| 静海县| 道孚县|