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.mzph.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 优化器可能选择了错…