yarn的安裝和使用

2021-9-7    前端達(dá)人

yarn的簡介:

Yarn是facebook發(fā)布的一款取代npm的包管理工具。


yarn的特點(diǎn):

  • 速度超快。
    • Yarn 緩存了每個(gè)下載過的包,所以再次使用時(shí)無需重復(fù)下載。 同時(shí)利用并行下載以最大化資源利用率,因此安裝速度更快。
  • 超級(jí)安全。
    • 在執(zhí)行代碼之前,Yarn 會(huì)通過算法校驗(yàn)每個(gè)安裝包的完整性。
  • 超級(jí)可靠。
    • 使用詳細(xì)、簡潔的鎖文件格式和明確的安裝算法,Yarn 能夠保證在不同系統(tǒng)上無差異的工作。

yarn的安裝:

  1. 下載node.js,使用npm安裝
    npm install -g yarn
    查看版本:yarn --version
  2. 安裝node.js,下載yarn的安裝程序:
    提供一個(gè).msi文件,在運(yùn)行時(shí)將引導(dǎo)您在Windows上安裝Yarn
  3. Yarn 淘寶源安裝,分別復(fù)制粘貼以下代碼行到黑窗口運(yùn)行即可
    yarn config set registry https://registry.npm.taobao.org -g
    yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

yarn的常用命令:

  • 安裝yarn

    • npm install -g yarn
  • 安裝成功后,查看版本號(hào):

    • yarn --version
  • 創(chuàng)建文件夾 yarn

    • md yarn
  • 進(jìn)入yarn文件夾

    • cd yarn
  • 初始化項(xiàng)目

    • yarn init // 同npm init,執(zhí)行輸入信息后,會(huì)生成package.json文件
  • yarn的配置項(xiàng):

    • yarn config list // 顯示所有配置項(xiàng)
    • yarn config get <key> //顯示某配置項(xiàng)
    • yarn config delete <key> //刪除某配置項(xiàng)
    • yarn config set <key> <value> [-g|--global] //設(shè)置配置項(xiàng)
  • 安裝包:

    • yarn install //安裝package.json里所有包,并將包及它的所有依賴項(xiàng)保存進(jìn)yarn.lock
    • yarn install --flat //安裝一個(gè)包的單一版本
    • yarn install --force //強(qiáng)制重新下載所有包
    • yarn install --production //只安裝dependencies里的包
    • yarn install --no-lockfile //不讀取或生成yarn.lock
    • yarn install --pure-lockfile //不生成yarn.lock
  • 添加包(會(huì)更新package.json和yarn.lock):

    • yarn add [package] // 在當(dāng)前的項(xiàng)目中添加一個(gè)依賴包,會(huì)自動(dòng)更新到package.json和yarn.lock文件中
    • yarn add [package]@[version] // 安裝指定版本,這里指的是主要版本,如果需要精確到小版本,使用-E參數(shù)
    • yarn add [package]@[tag] // 安裝某個(gè)tag(比如beta,next或者latest)

    //不指定依賴類型默認(rèn)安裝到dependencies里,你也可以指定依賴類型:

    • yarn add --dev/-D // 加到 devDependencies
    • yarn add --peer/-P // 加到 peerDependencies
    • yarn add --optional/-O // 加到 optionalDependencies

    //默認(rèn)安裝包的主要版本里的最新版本,下面兩個(gè)命令可以指定版本:

    • yarn add --exact/-E // 安裝包的精確版本。例如yarn add foo@1.2.3會(huì)接受1.9.1版,但是yarn add foo@1.2.3 --exact只會(huì)接受1.2.3版
    • yarn add --tilde/-T // 安裝包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde會(huì)接受1.2.9,但不接受1.3.0
  • 發(fā)布包

    • yarn publish
  • 移除一個(gè)包

    • yarn remove <packageName>:移除一個(gè)包,會(huì)自動(dòng)更新package.json和yarn.lock
  • 更新一個(gè)依賴

    • yarn upgrade 用于更新包到基于規(guī)范范圍的最新版本
  • 運(yùn)行腳本

    • yarn run 用來執(zhí)行在 package.json 中 scripts 屬性下定義的腳本
  • 顯示某個(gè)包的信息

    • yarn info <packageName> 可以用來查看某個(gè)模塊的最新版本信息
  • 緩存

    • yarn cache
      • yarn cache list # 列出已緩存的每個(gè)包 yarn cache dir # 返回 全局緩存位置 yarn cache clean # 清除緩存

npm 與 yarn命令比較:

這里寫圖片描述


npm 與 yarn相關(guān)問題比較:

npm模塊的依賴:
  • npm存在一些歷史遺留問題,請(qǐng)看下圖:
    這里寫圖片描述

比如說你的項(xiàng)目模塊依賴是圖中描述的,@1.2.1代表這個(gè)模塊的版本。在你安裝A的時(shí)候需要安裝依賴C和D,很多依賴不會(huì)指定版本號(hào),默認(rèn)會(huì)安裝最新的版本,這樣就會(huì)出現(xiàn)問題:比如今天安裝模塊的時(shí)候C和D是某一個(gè)版本,而當(dāng)以后C、D更新的時(shí)候,再次安裝模塊就會(huì)安裝C和D的最新版本,如果新的版本無法兼容你的項(xiàng)目,你的程序可能就會(huì)出BUG,甚至無法運(yùn)行。這就是npm的弊端,而yarn為了解決這個(gè)問題推出了yarn.lock的機(jī)制,這是作者項(xiàng)目中的yarn.lock文件。

yarn.lock文件格式:

這里寫圖片描述

大家會(huì)看到,這個(gè)文件已經(jīng)把依賴模塊的版本號(hào)全部鎖定,當(dāng)你執(zhí)行yarn install的時(shí)候,yarn會(huì)讀取這個(gè)文件獲得依賴的版本號(hào),然后依照這個(gè)版本號(hào)去安裝對(duì)應(yīng)的依賴模塊,這樣依賴就會(huì)被鎖定,以后再也不用擔(dān)心版本號(hào)的問題了。其他人或者其他環(huán)境下使用的時(shí)候,把這個(gè)yarn.lock拷貝到相應(yīng)的環(huán)境項(xiàng)目下再安裝即可。
注意:這個(gè)文件不要手動(dòng)修改它,當(dāng)你使用一些操作如yarn add時(shí),yarn會(huì)自動(dòng)更新yarn.lock。

使用yrm工具管理一些npm源

安裝

  • yarn global add yrm

查看可用源

  • yrm ls

選擇源

  • yrm use yarn

快速刪除node_modules

手動(dòng)刪除真的很慢:

  • 安裝: npm install rimraf -g
  • 使用:rimraf node_modules

rimraf是node的一個(gè)包,可以快速刪除node_modules,再也不用等半天了


分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。
來源:csdn

藍(lán)藍(lán)設(shè)計(jì)m.yvirxh.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)

日歷

鏈接

個(gè)人資料

存檔