yarn不同操作系統的安裝與配置

Yarn 是一個快速、可靠且安全的依賴包管理工具,用于替代 npm。以下是在不同操作系統上安裝和配置 Yarn 的步驟。

1. 安裝 Node.js

在安裝 Yarn 之前,請確保已經安裝了 Node.js,因為 Yarn 需要 Node.js 環境。你可以在 Node.js — Run JavaScript Everywhere 下載并安裝適合你操作系統的版本。

2. 在 Ubuntu / Debian 上安裝 Yarn

在 Ubuntu 或 Debian 系統上,可以通過以下命令使用包管理器 apt 來安裝 Yarn:

 

Bash

1curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
2echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
3sudo apt-get update && sudo apt-get install yarn

3. 在 CentOS / RHEL 上安裝 Yarn

在 CentOS 或 RHEL 系統上,可以使用以下命令通過包管理器 yum 或 dnf 來安裝 Yarn:

 

Bash

1curl -sS https://dl.yarnpkg.com/rpm/pubkey.gpg | sudo rpm --import -
2echo -e "[yarn]\nname=Yarn\nbaseurl=https://dl.yarnpkg.com/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://dl.yarnpkg.com/rpm/pubkey.gpg" | sudo tee /etc/yum.repos.d/yarn.repo
3sudo yum install yarn
4# 如果你的系統使用的是dnf,替換上面的yum為dnf即可

4. 在 macOS 上安裝 Yarn

在 macOS 上,可以使用 Homebrew 包管理器來安裝 Yarn:

 

Bash

1brew install yarn

5. 在 Windows 上安裝 Yarn

在 Windows 上,你可以通過 Chocolatey 包管理器或直接從 Yarn 官網下載安裝包進行安裝。

  • 使用 Chocolatey:
 
1choco install yarn
  • 從官網下載:訪問?Installation | Yarn?,下載并運行安裝程序。

6. 配置 Yarn

安裝完成后,你可能需要對 Yarn 進行一些基本配置,例如設置全局安裝目錄和緩存目錄。可以通過編輯 .yarnrc 文件(位于用戶主目錄下)來完成這些配置。

例如,要將全局安裝目錄設置為 /usr/local/lib/node_modules 和緩存目錄設置為 /var/cache/yarn,可以添加以下內容到 .yarnrc 文件中:

1yarn-offline-mirror: false
2global-folder: "/usr/local/lib/node_modules"
3cache-folder: "/var/cache/yarn"

請根據實際情況調整路徑。

成功安裝和配置了 Yarn,可以開始使用它來管理 項目依賴了!

Yarn 是一個高效、可靠且安全的包管理器,它與 npm 兼容但提供了更快的安裝速度和更好的依賴一致性。以下是 Yarn 的基本用法概覽,這將幫助你快速上手使用 Yarn:

7.基本命令

初始化項目

若要初始化一個新的項目,使用 yarn init 命令。這會創建一個 package.json 文件,并引導你填寫項目信息。

添加依賴

使用 yarn add <package> 來安裝一個新包。例如,安裝 lodash 庫:

yarn add lodash


安裝項目依賴

要安裝項目中列出的所有依賴,只需運行 yarn 或 yarn install。Yarn 會讀取 package.json 中的 dependencies 和 devDependencies 列表。

升級依賴

若要升級一個已存在的依賴到最新版本,使用 yarn upgrade <package>。

移除依賴

使用 yarn remove <package> 來移除一個不再需要的包。

列出所有依賴

yarn list 命令顯示所有已安裝的依賴包及其版本。

檢查依賴

yarn check 可以驗證項目中的依賴是否與 package-lock.json 或 yarn.lock 文件中的信息匹配。

清理緩存

使用 yarn cache clean 清除 Yarn 的緩存。

全局安裝

若要全局安裝一個包,使用 yarn global add <package>。

8.高級功能


鏈接本地模塊

使用 yarn link 和 yarn link <package> 命令來鏈接本地開發的模塊到項目中,這樣就可以在開發過程中實時看到模塊的變化。

工作空間

大型項目可能包含多個子項目,每個子項目都有自己的 package.json。Yarn 的工作空間功能可以幫助管理這些子項目。在根目錄的 package.json 文件中定義 workspaces 字段,然后可以使用 yarn workspaces <command> 來針對所有工作空間執行命令。

插件

Yarn 支持插件,可以擴展其功能。使用 yarn plugin import <plugin-name> 來安裝插件。

多版本支持

Yarn 允許同時安裝不同版本的相同包,這在處理不同的項目需求時非常有用。

9.日常使用技巧

腳本運行

除了管理依賴,package.json 中的 scripts 字段可以用來定義常用任務,例如構建、測試和部署。使用 yarn <script-name> 來運行這些腳本。

環境變量

Yarn 可以通過 .env 文件或環境變量來設置項目級別的環境變量,這對于配置不同的環境(如開發、測試和生產)很有幫助。

鎖定文件

Yarn 使用 yarn.lock 文件來跟蹤確切的依賴版本,確保在任何環境中安裝的依賴完全一致。

10.構建和發布

  1. 構建和打包
    如果你的項目有構建步驟,比如編譯源代碼或者壓縮資源文件,可以在 package.jsonscripts 字段中定義一個 build 腳本,然后使用 yarn build 來運行這個腳本。

  2. 發布到npm倉庫
    使用 yarn publish 命令可以將你的項目發布到 npm 倉庫。在發布前,請確保你已經在 npm 登錄過 (npm login) 并且你的 package.json 文件中的 version 字段已經更新。

11.檢查和審計

  1. 依賴關系圖
    使用 yarn why <package> 查看特定包是如何被引入項目的,以及它的所有依賴樹。

  2. 依賴審計
    yarn audit 命令可以檢查你的項目是否存在已知的安全漏洞,并提供修復建議。

12.自動化和CI/CD

  1. 自動化腳本
    你可以將 yarn 命令集成到 CI/CD 流水線中,例如在構建流程中自動運行 yarn installyarn test

  2. 環境變量和配置
    利用 .env 文件或環境變量來存儲敏感信息,如 API 密鑰和數據庫連接字符串,以避免硬編碼到代碼中。

13.性能優化

  1. 使用離線模式
    當網絡不穩定或不可用時,可以使用 yarn install --offline 命令,Yarn 將嘗試從本地緩存安裝依賴。

  2. 自定義鏡像源
    對于國內用戶,可以通過修改 .yarnrc 文件中的 registry 設置來使用國內的 npm 鏡像源,例如阿里云鏡像,以提高下載速度。

14.最佳實踐

  1. 保持 yarn.lock 文件同步
    每次修改依賴后,都應該提交更新后的 yarn.lock 文件到版本控制系統,確保團隊成員使用相同的依賴版本。

  2. 定期更新依賴
    定期運行 yarn outdated 檢查過時的依賴,然后使用 yarn upgrade 更新它們,以獲取最新的安全補丁和功能改進。

  3. 使用Workspaces管理多項目
    如果你的項目包含多個獨立的子項目,考慮使用 Workspaces 功能來簡化依賴管理和構建過程。

  4. 文檔和注釋
    package.jsonREADME.md 文件中詳細記錄項目的依賴、腳本和安裝步驟,以便新加入的開發者能夠快速上手。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38750.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

昇思25天學習打卡營第十五天|基于MobileNetv2的垃圾分類

基于MobileNetv2的垃圾分類 MobileNetv2模型原理介紹 MobileNet網絡是由Google團隊于2017年提出的專注于移動端、嵌入式或IoT設備的輕量級CNN網絡&#xff0c;相比于傳統的卷積神經網絡&#xff0c;MobileNet網絡使用深度可分離卷積&#xff08;Depthwise Separable Convolut…

Zabbix 6.0 案例

自定義監控內容 案列&#xff1a;自定義監控客戶端服務器登錄的人數 需求&#xff1a;限制登錄人數不超過 3 個&#xff0c;超過 3 個就發出報警信息 1.在客戶端創建自定義 key 明確需要執行的 linux 命令 who | wc -l 2.在被監控主機的配置文件目錄中&#xff08;/etc/za…

港大推出XRec:「會說話」的推薦系統大模型, 從黑盒預測到可解釋

代碼鏈接: https://github.com/HKUDS/XRec 論文鏈接: https://arxiv.org/pdf/2406.02377 實驗室鏈接: https://sites.google.com/view/chaoh 最近,香港大學數據智能實驗室推出了一款名為 XRec 的全新智能大模型,旨在為傳統推薦系統注入可解釋性的新動力。XRec 利用大語言模型…

PyTorch入門筆記

學習參考&#xff1a; PyTorch簡單入門視頻 深入淺出PyTorch 小土堆筆記 前置知識 AI vs ML vs DL AI&#xff08;Artificial Intelligence&#xff09;&#xff1a;通過讓機器模仿人類進而超越人類ML&#xff08;Machine Learning&#xff09;&#xff1a;讓機器模仿人類的一…

【AI原理解析】—支持向量機原理

目錄 1. 支持向量機&#xff08;SVM&#xff09;概述 2. 超平面與支持向量 3. 間隔最大化 4. 優化問題 5. 核函數 6. 總結 1. 支持向量機&#xff08;SVM&#xff09;概述 定義&#xff1a;支持向量機是一種監督學習模型&#xff0c;主要用于數據分類問題。其基本思想是…

【C++】const詳解

&#x1f4e2;博客主頁&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01; &#x1f4e2;本文作為 JohnKi &#xff0c;引用了部分大佬的案例 &#x1f4e2;未來很長&#xff0c;…

Android 常用文件系統命令

Android 常用文件系統命令 當系統正在對某個文件系統的區域進行寫入操作時&#xff08;讀的話沒關系&#xff09;&#xff0c;突然斷電&#xff0c;會造成文件系統對應區域的損壞&#xff08;如寫入臟數據&#xff09;&#xff0c; 而e2fsck算法就是用來恢復受損的文件系統&am…

力扣1177.構建回文串檢測

力扣1177.構建回文串檢測 因為子串可以重新排序 因此考慮一下什么情況需要替換字母1.當前有一個字母的數量為奇數 需要替換的次數為0 2.當前有二個字母的數量為奇數 需要替換的次數為1 (奇數個a 奇數個b 需要將b -> a) 3.當前有三個字母的數量為奇數 需要替換的次數為1 4.當…

Edge瀏覽器選中后,出現AI智能生成 AI專業寫作

這個是擴展里邊的“ 網頁萬能復制 & ChatGPT AI寫作助手”造成的&#xff0c;這個拓展增加了AI寫作功能。關閉這個拓展就解決了。

入門Axure:快速掌握原型設計技能

2002 年&#xff0c;維克托和馬丁在舊金山灣區的一家初創公司工作&#xff0c;發現自己一再被軟件開發生命周期的限制所困擾&#xff0c;而且產品團隊在編寫規范之前很難評估他們的解決方案&#xff0c;開發人員經常不理解&#xff08;或不閱讀&#xff09;給出的規范&#xff…

承載網與核心網的區別

承載網和核心網是通信網絡中的兩個重要組成部分&#xff0c;它們有以下主要區別&#xff1a; 功能方面&#xff1a; 承載網主要負責提供數據傳輸的通道和鏈路&#xff0c;確保各種業務數據能夠在網絡中高效、可靠地傳輸。它類似于通信網絡中的“道路”&#xff0c;專注于數據的…

【linux學習---1】點亮一個LED---驅動一個GPIO

文章目錄 1、原理圖找對應引腳2、IO復用3、IO配置4、GPIO配置5、GPIO時鐘使能6、總結 1、原理圖找對應引腳 從上圖 可以看出&#xff0c; 蜂鳴器 接到了 BEEP 上&#xff0c; BEEP 就是 GPIO5_IO05 2、IO復用 查找IMX6UL參考手冊 和 STM32一樣&#xff0c;如果某個 IO 要作為…

14-16 AI Agent:您無法忽視的盈利未來

忘掉關于機器人接管我們工作的爭論吧。一場更加微妙、可能更有利可圖的革命正在醞釀之中——智能代理的崛起&#xff0c;而智能代理的光芒常常被其更簡單的“表親”虛擬助理所掩蓋。 雖然 Siri 和 Alexa 可以處理基本任務和基本對話&#xff0c;但人工智能代理則完全不同。想象…

HTML5的多線程技術:Web Worker API

Web Workers API 是HTML5的一項技術&#xff0c;它允許在瀏覽器后臺獨立于主線程運行腳本&#xff0c;即允許進行多線程處理。這對于執行密集型計算任務特別有用&#xff0c;因為它可以防止這些任務阻塞用戶界面&#xff0c;從而保持網頁的響應性和交互性。Web Workers在自己的…

中國動物志(140卷)

中國動物志&#xff0c;共140卷&#xff0c;包括昆蟲綱、鳥綱、獸綱、無脊椎動物、硬骨魚綱等多類&#xff0c;是反映我國動物分類區系研究工作成果的系列專著&#xff0c;是研究物種多樣性、探討物種演化和系統發育的重要參考&#xff0c;是動物資源開發利用、有害物種控制、瀕…

昇思25天學習打卡營第12天|linchenfengxue

DCGAN生成漫畫頭像 通過示例代碼說明DCGAN網絡如何設置網絡、優化器、如何計算損失函數以及如何初始化模型權重。 GAN基礎原理 生成式對抗網絡(Generative Adversarial Networks&#xff0c;GAN)是一種生成式機器學習模型&#xff0c;是近年來復雜分布上無監督學習最具前景的…

esp32 模擬藍牙鍵盤不生效一例

esp32 使用 GitHub - T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible) 這個開源庫模擬鍵盤功能早之前已經玩過&#xff0c;生效&#xff0c;昨天再來玩的時候發覺莫名奇妙居然又不能用了&#xff0c;各種折騰&#xff1a;換了…

如何在Java中使用Kafka

如何在Java中使用Kafka 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; Kafka是一個分布式流處理平臺&#xff0c;廣泛用于實時數據流的處理和傳輸。本文將詳細…

什么是Web3D交互展示?有什么優勢?

在智能互聯網蓬勃發展的時代&#xff0c;傳統的圖片、文字及視頻等展示手段因缺乏互動性&#xff0c;正逐漸在吸引用戶注意力和提升宣傳效果上顯得力不從心。而Web3D交互展示技術的橫空出世&#xff0c;則為眾多品牌與企業開啟了一扇全新的展示之門&#xff0c;讓線上產品體驗從…

【C語言】extern 關鍵字

在C語言中&#xff0c;extern關鍵字用于聲明一個變量或函數是定義在另一個文件中的。它使得在多個文件之間共享變量或函數成為可能。extern關鍵字常見于大型項目中&#xff0c;通常用于聲明全局變量或函數&#xff0c;這些變量或函數的定義位于其他文件中。 基本用法 變量聲明…