Yarn 安裝與使用教程

Yarn 安裝與使用教程

Yarn 是一個由 Facebook 開發的 JavaScript 包管理工具,它比傳統的 npm 更加高效、可靠,并且在性能上有所提升。Yarn 主要解決了 npm 安裝速度慢、并發性差、緩存機制不完善等問題,它提供了更快的安裝速度、更穩定的依賴管理和更好的離線使用體驗。

本文將詳細介紹如何安裝和使用 Yarn,以及它的一些常用功能。


一、安裝 Yarn

1.1 使用 npm 安裝 Yarn

如果你已經安裝了 npm(Node.js 的包管理工具),可以直接通過以下命令安裝 Yarn:

npm install -g yarn

安裝完成后,可以通過以下命令驗證 Yarn 是否安裝成功:

yarn --version

如果命令輸出了版本號,則說明安裝成功。

1.2 使用 Homebrew 安裝 Yarn(macOS)

對于 macOS 用戶,推薦使用 Homebrew 安裝 Yarn。首先確保你已經安裝了 Homebrew,然后運行以下命令:

brew install yarn

安裝完成后,使用以下命令驗證安裝:

yarn --version

1.3 使用 Windows 安裝程序(Windows)

Windows 用戶可以通過下載安裝程序來安裝 Yarn。訪問 Yarn 官方安裝頁面 下載最新版本的安裝包,并按照提示安裝。

安裝完成后,打開命令提示符(CMD)或 PowerShell,輸入以下命令檢查版本:

yarn --version

二、初始化項目

2.1 創建項目

在項目文件夾中,運行以下命令來初始化一個新的項目:

yarn init

此命令會引導你輸入項目的相關信息,如項目名稱、版本、描述等。如果你希望跳過所有提示并使用默認值,可以運行:

yarn init -y

這將自動生成一個 package.json 文件,記錄項目的元數據和依賴項。

2.2 安裝依賴

通過 Yarn 安裝項目依賴非常簡單。假設你要安裝 reactredux,可以運行以下命令:

yarn add react redux

這會將 reactredux 安裝到 node_modules 目錄中,并將它們的版本信息自動記錄在 package.json 文件的 dependencies 字段中。

如果你需要安裝開發依賴(如 Webpack 或 Babel),可以加上 --dev 參數:

yarn add webpack --dev

這會將依賴項安裝到 devDependencies 中。

2.3 安裝指定版本的包

如果你希望安裝指定版本的依賴,可以通過以下命令指定版本號:

yarn add react@16.8.0

2.4 使用離線緩存安裝依賴

Yarn 具有緩存機制,在首次安裝時會將依賴項緩存到本地,以便下次使用。如果你在沒有網絡的情況下需要安裝依賴,可以使用緩存安裝:

yarn install --offline

三、常用命令

3.1 安裝依賴

當你克隆一個項目時,或當 package.json 中的依賴發生變化時,可以運行以下命令安裝所有依賴:

yarn install

這個命令會根據 package.jsonyarn.lock 文件安裝所有的依賴包。

3.2 升級依賴

要升級某個依賴的版本,可以運行:

yarn upgrade [package-name]@[version]

例如,升級 react 到 17.0.0 版本:

yarn upgrade react@17.0.0

3.3 移除依賴

如果你想卸載某個不再需要的依賴,可以運行:

yarn remove [package-name]

例如,卸載 redux

yarn remove redux

這會同時移除 node_modules 中的包,并從 package.json 中的依賴項中刪除。

3.4 顯示已安裝的依賴

要查看當前項目中所有安裝的依賴,可以使用:

yarn list

這會列出項目中所有的依賴包以及它們的版本。

3.5 生成 lock 文件

yarn.lock 文件記錄了所有依賴包及其確切版本,確保項目中所有人安裝的依賴版本完全一致。它在運行 yarn install 時會自動生成,如果需要,可以手動刪除并重新生成:

rm yarn.lock
yarn install

3.6 運行腳本

package.json 中,通常會定義一些項目相關的腳本,比如構建、測試、啟動等。你可以使用以下命令運行這些腳本:

yarn run [script-name]

例如,假設 package.json 中定義了一個 start 腳本,可以通過以下命令啟動應用:

yarn run start

你也可以簡化為:

yarn start

四、Yarn 與 npm 比較

4.1 性能差異

Yarn 在性能上比 npm 更加出色。由于 Yarn 使用了并行安裝和緩存機制,因此安裝速度通常會比 npm 更快。

4.2 安全性

Yarn 提供了 yarn.lock 文件來鎖定依賴版本,確保團隊成員之間使用的是完全一致的版本,避免了因版本差異導致的潛在問題。而 npm 在 5.x 版本之后也引入了 package-lock.json 文件,功能類似。

4.3 離線模式

Yarn 提供了完整的離線安裝支持。當某個包被下載并緩存后,即使沒有網絡連接,也能繼續安裝依賴。而 npm 在這方面的支持則較為有限。


五、總結

Yarn 是一個快速、可靠的 JavaScript 包管理工具,它相較于 npm 提供了更好的性能、更強的緩存機制和更好的離線支持。如果你正在構建一個現代 JavaScript 應用,Yarn 是一個值得考慮的工具。

通過本文,你已經學會了如何安裝和使用 Yarn,包括創建項目、安裝依賴、運行腳本等常見操作。你可以在實際項目中根據需要靈活使用 Yarn 提供的各種命令,提高開發效率。

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

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

相關文章

Spring Boot 的配置加載順序

Spring Boot 的配置加載順序是“后來居上”——優先級高的配置源會覆蓋優先級低的配置源中的同名配置 覆蓋規則如下: 后加載的配置具有更高的優先級,會覆蓋先加載的配置。如果多個配置源中存在同名配置項,最終生效的是具有最高優先級的那個…

Git分支重命名與推送參數解析

這兩個參數的解釋如下: git branch -M master 中的 -M 參數 -M 是 --move --force 的組合簡寫,表示強制重命名當前分支為 master。如果當前分支已經存在名為 master 的分支,-M 會強制覆蓋它(慎用,可能導致數據丟失&…

qt源碼編譯

問題1&#xff1a; 源碼頭文件問題&#xff1a; 有部分頭文件缺少#include<limits>頭文件 home/jetson/qt-everywhere-src-5.15.2/qtbase/include/QtCore/qfloat16.h /home/jetson/qt-everywhere-src-5.15.2/qtbase/src/corelib/text/qbytearraymatcher.h 問題2&…

芯嶺技術XL32F003單片機 32位Cortex M0+ MCU簡單介紹 性能優異

XL32F003單片機是深圳市芯嶺技術有限公司的一款基于 32 位 ARM Cortex-M0 內核的高性能微控制器&#xff0c;提供SOP8/SOP14/SOP16/TSSOP20/SSOP24/QFN20/QFN32多種封裝可選&#xff0c;可滿足不同設計需求。XL32F003可用于工業控制、手持設備、PC 外設、傳感器節點等應用場景&…

計算機圖形學實踐:結合Qt和OpenGL實現繪制彩色三角形

在Qt項目中結合OpenGL與CMake需要配置正確的依賴關系、鏈接庫以及代碼結構設計。以下是具體實現步驟和關鍵要點&#xff1a; 一、環境準備 安裝Qt 確保安裝包含OpenGL模塊的Qt版本&#xff08;如Qt OpenGL、Qt OpenGLWidgets組件&#xff09;。安裝CMake 使用3.10及以上版本&a…

3:QT聯合HALCON編程—海康相機SDK二次程序開發

思路&#xff1a; 1.定義帶UI界面的主函數類 1.1在主函數中包含其它所有類頭文件&#xff0c;進行聲明和實例化&#xff1b;使用相機時&#xff0c;是用公共相機的接口在某一個具體函數中去實例化具體的海康相機對象。 1.2設計界面&#xff1a;連接相機&#xff0c;單次采集&a…

基于大模型底座重構司法信息系統

前置篇章&#xff1a;法律智能體所需的基礎知識 構建一個高效的法律智能體&#xff0c;特別是在基于RAG&#xff08;Retrieval-Augmented Generation&#xff09;架構的背景下&#xff0c;需要融合多種學科和領域的知識。以下是對法律智能體開發和應用所需核心基礎知識的簡要介…

類《雙人成行》3D動作益智冒險類雙人控制游戲開發

服務器端采用了基于開源Kbengine&#xff08;引擎使用C和Python編寫&#xff09;的多人在線游戲服務器&#xff0c;客戶端采用Unity3D。游戲支持線上的雙人聯機房間功能。 資源地址&#xff1a;類《雙人成行》3D動作益智冒險類雙人控制游戲開發教程 | Unity 中文課堂 一、游戲…

Spark--基本介紹

Spark是基于內存的快速&#xff0c;通農用&#xff0c;可拓展的大數據分析計算引擎&#xff0c;Hadoop是一個分布式系統基礎架構 Spark和Hadoop之間的對比和聯系 架構與組件&#xff1a; Hadoop&#xff1a; ■ HDFS&#xff1a;分布式文件系統&#xff0c;負責海量數據存儲。…

05-GPIO原理

一、概述 1、GPIO,即通用I/O(輸入/輸出)端口&#xff0c;是STM32可控制的引腳。STM32芯片的GPIO引腳與外部設備連接起來&#xff0c;可實現與外部通訊、控制外部硬件或者采集外部硬件數據的功能。 2、GPIO的復用:引腳復用是指將單個引腳配置為多個功能的能力。在 STM32 中&…

基于LangChain4J的AI Services實踐:用聲明式接口重構LLM應用開發

基于LangChain4J的AI Services實踐&#xff1a;用聲明式接口重構LLM應用開發 前言&#xff1a;當Java開發遇上LLM編程困境 在LLM應用開發領域&#xff0c;Java開發者常面臨兩大痛點&#xff1a;一是需要手動編排Prompt工程、記憶管理和結果解析等底層組件&#xff0c;二是復雜…

深入解析 Docker 容器進程的 cgroup 和命名空間信息

深入解析 Docker 容器進程的 cgroup 和命名空間信息 在現代 Linux 系統中&#xff0c;控制組&#xff08;cgroup&#xff09;和命名空間&#xff08;namespace&#xff09;是實現容器化技術的核心機制。cgroup 用于管理和限制進程的資源使用&#xff08;如 CPU、內存、I/O&…

【汽車ECU電控數據管理篇】S19文件格式解析篇章

一、S19格式是啥 在電控文件管理的初期階段&#xff0c;我首次接觸到的是 A2L 和 HEX 文件。其中&#xff0c;A2L 文件主要承擔著描述性功能&#xff0c;它詳細地描述了各種參數和配置等相關信息。而 HEX 文件則是一種刷寫文件&#xff0c;其內部明確記錄了具體的地址以及對應的…

python編程相關的單詞

the: 在編程中&#xff0c;“the” 是一個常見的英語單詞&#xff0c;用于指定特定的對象或變量。例如&#xff0c;“the function” 指的是某個特定的函數。 the的拼寫是t,h,e.再讀一次t,h,e and: 在編程中&#xff0c;“and” 是一個邏輯運算符&#xff0c;用于連接兩個條件&…

網絡原理 - 4(TCP - 1)

目錄 TCP 協議 TCP 協議段格式 可靠傳輸 幾個 TCP 協議中的機制 1. 確認應答 2. 超時重傳 完&#xff01; TCP 協議 TCP 全稱為 “傳輸控制協議”&#xff08;Transmission Control Protocol&#xff09;&#xff0c;要對數據的傳輸進行一個詳細的控制。 TCP 協議段格…

python博客爬蟲列表

我希望對指定網頁的&#xff0c;博客列表&#xff0c;獲取url&#xff0c;然后保存成本地文件&#xff0c;用python實現 step1: import requests from bs4 import BeautifulSoup import jsondef get_blog_links(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win6…

軟件測試入門學習筆記

今天學習新知識&#xff0c;軟件測試。 什么是軟件測試&#xff1f; 使用人工和自動手段來運行或測試某個系統的過程&#xff0c;目的在于檢驗它是否滿足規定的需求或弄清實際結果與預期結果之間的差別。 軟件測試的目的&#xff1f; 1&#xff09;為了發現程序&#xff0…

uniapp開發2--uniapp中的條件編譯總結

以下是對 uni-app 中條件編譯的總結&#xff1a; 概念&#xff1a; 條件編譯是一種技術&#xff0c;允許你根據不同的平臺或環境&#xff0c;編譯不同的代碼。 在 uni-app 中&#xff0c;這意味著你可以編寫一套代碼&#xff0c;然后根據要編譯到的平臺&#xff08;例如微信小…

【k8s】sidecar邊車容器

一、Sidecar 模式簡介 Sidecar 模式是一種常見的微服務架構設計模式。它通過將附加功能或服務與主應用程序部署在同一容器或主機上&#xff0c;從而實現對主應用程序的增強和擴展。Sidecar 的名稱來源于摩托車的邊車&#xff0c;它與摩托車緊密相連&#xff0c;為主車提供額外…

MySQL索引使用一定有效嗎?如何排查索引效果?

MySQL索引使用一定有效嗎&#xff1f;如何排查索引效果&#xff1f; 1. 索引一定有效嗎&#xff1f; 不一定&#xff01; 即使你創建了索引&#xff0c;MySQL 也可能因為以下原因 不使用索引 或 索引效果不佳&#xff1a; 索引選擇錯誤&#xff1a;MySQL 優化器可能選擇了錯…