yarn 现代的包管理工具 介绍

news2024/9/24 7:17:08

一、前言

在这里插入图片描述

yarn 是一个现代的包管理工具,它是 npm(Node Package Manager)的一个替代品。yarn 由 Facebook 开发,并在 2016 年发布。它解决了当时 npm 的一些问题,尤其是在性能和安全性方面。

yarn 主要用于以下几个方面:

  1. 依赖管理:管理项目的依赖项,就像 npm 一样。你可以使用 yarn add package-name 来添加新的依赖,yarn 会自动更新 package.jsonyarn.lock 文件。

  2. 安装项目依赖:通过 yarn install 命令安装所有在 package.json 文件中列出的依赖项。

  3. 版本锁定yarn.lock 文件锁定了依赖项的版本,确保每个安装或在不同环境下的构建都是一致的。

  4. 脚本运行:与 npm 类似,yarn 可以运行在 package.json 中定义的脚本,例如 yarn startyarn test

  5. 工作区支持yarn 支持工作区(workspaces),这使得在单个仓库中管理多个包变得更加容易。

  6. 性能yarn 在安装包时更快,因为它并行安装依赖项,并且更有效地利用缓存。

  7. 网络性能和可靠性yarn 通过使用一个全局缓存来存储下载过的每个包,因此你不需要每次都重新下载它们。

  8. 安全yarn 提供了一些增强的安全特性,例如通过校验每个安装包的完整性来提供更安全的依赖管理。

  9. 用户界面yarn 提供了一个更清晰的用户界面,给出更详细的错误信息和警告。

随着时间的推移,npm 也在不断地更新和改进,添加了许多 yarn 所具有的特性,包括 npm 自己的版本锁定文件 package-lock.json。因此,两者之间的差异已经不像最初那么大了,但许多开发者和团队仍然根据个人偏好和项目需求选择使用 yarn

二、yarn的基本使用

yarn的项目,建议编译器使用:VScode
要使用 Yarn 初始化一个新的项目,你需要按照以下步骤操作:

  1. 安装 Yarn:如果你还没有安装 Yarn,请先安装它。你可以通过 npm(这可能看起来有些讽刺)来安装 Yarn,或者从 Yarn 的官方网站下载安装包。

    使用 npm 安装 Yarn:

    npm install -g yarn
    

    或者,你可以访问 Yarn 官网 来查看其他安装选项。

  2. 初始化新项目:打开终端(在 Windows 上是命令提示符或 PowerShell,在 macOS 或 Linux 上是终端),然后导航到你想要创建项目的目录。运行以下命令来初始化一个新项目:

    yarn init
    

    这个命令将会启动一个简单的交互式流程,询问一些问题来帮助设置 package.json 文件,如项目名称、版本、描述等。如果你想要跳过这些问题直接创建一个带有默认值的 package.json 文件,可以运行:

    yarn init -y
    
  3. 添加依赖:一旦你的项目被初始化,你可以开始添加依赖。使用 yarn add 命令来添加你需要的库:

    yarn add [package-name]
    

    这将会安装最新版本的包,并且更新你的 package.jsonyarn.lock 文件,后者用于锁定依赖版本以确保一致性。

  4. 安装所有依赖:如果你是在现有项目上工作,只需运行以下命令来安装所有在 package.json 中定义的依赖:

    yarn
    

    或者:

    yarn install
    
  5. 运行脚本:如果你的 package.json 文件中定义了脚本,比如 starttest,你可以使用 Yarn 来运行这些脚本:

    yarn run [script-name]
    

    例如,如果你有一个名为 start 的脚本,你可以这样运行它:

    yarn start
    

通过这些步骤,你就可以使用 Yarn 来初始化和管理你的 JavaScript 或 TypeScript 项目了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1420821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用操作符解题的精彩瞬间(上)

下面是链接为了解释练习2的并且还有与操作符相关的知识。 C语言与操作符相关的经典例题-CSDN博客 操作符详解(上)-CSDN博客 操作符详解(下)-CSDN博客 目录 练习1:在一个整型数组中,只有一个数字出现一…

SpringCloud微服务常见问题

1 微服务 返回面试宝典 问题1 SpringCloud常见组件有哪些? SpringCloud包含的组件很多,有很多功能是重复的,其中最常见的组件包括: 注册中心组件:Eureka、Nacos等;负载均衡组件:Ribbon&…

面试题 02.07. 链表相交(力扣LeetCode)

文章目录 面试题 02.07. 链表相交题目描述解题思路c代码优化后c代码 面试题 02.07. 链表相交 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 …

【Linux】—— 信号的产生

本期,我们今天要将的是信号的第二个知识,即信号的产生。 目录 (一)通过终端按键产生信号 (二)调用系统函数向进程发信号 (三)由软件条件产生信号 (四)硬件…

【学习笔记】Vue3源码解析:第一部分-实现vue3环境搭建

课程地址:【已完结】全网最详细Vue3源码解析!(一行行带你手写Vue3源码) 第一部分:实现vue3环境搭建(对应课程的第1-3节) VUE2与VUE3的对比: 也即vue2的痛点: 对TypeSc…

vue3前端开发框架的安全特性,非常适合现在的市场需求

vue3前端开发框架的安全特性,非常适合现在的市场需求!现在几乎所有的前端开发,都是使用的vue3做了开发。下面给大家展示一下。为什么说vue3框架自带安全特性呢。 如图,这个是我们在浏览器内看见的,渲染后的数据页面信息。很齐全。…

超越人类上限的策划:百度输入法在候选词区域植入广告

一位 V2EX 用户最新发帖称,百度输入法的最新版本中引入了一个新功能,将广告直接植入到候选词区域。 具体表现为,当用户输入某些关键词时,候选词区域会显示与输入内容相关的广告链接。例如,用户输入“招商”时&#xf…

【C++】类与对象(二)特殊成员函数

前言 类与对象(二) 文章目录 一、特殊成员函数二、构造函数三、析构函数四、拷贝构造函数五、拷贝赋值运算符 一、特殊成员函数 如果在类的声明中未显式提供某个成员函数的定义,编译器会自动生成一个默认实现。 这包括默认构造函数、默认析构…

Flutter 开发3:创建第一个Flutter应用

Step 1: 安装Flutter 1.1 下载Flutter SDK 首先,你需要访问Flutter官方网站下载最新的Flutter SDK。选择适合你操作系统的安装包。 $ cd ~/development $ unzip ~/Downloads/flutter_macos_2.2.3-stable.zip1.2 更新环境变量 接下来,你需要将Flutter…

笔记本电脑系统Win10重装教程

当前很多用户都会使用笔记本电脑办公,如果笔记本电脑携带的操作系统不好用,就会影响到用户的办公效率,这时候可以给笔记本电脑重新安装一款好用的系统。以下小编带来笔记本电脑系统Win10重装教程,让用户们轻松给笔记本电脑重新安装…

张维迎《博弈与社会》纳什均衡与囚徒困境博弈(2)囚徒困境博弈

囚徒困境大家应该都比较熟悉了,我觉得这篇的意义大概在与,经济学术语的运用? 囚徒困境:个人理性与集体理性的矛盾 假定有两个犯罪嫌疑人共同作案。警察抓住他们以后,分开拘押,并告诉他们:可以选…

GWIT 和GWFI

关于燃烧的历史: -UL request needle flame (open fire) test to rate flammability per UL-94 Vxx UL 要求针焰(明火)试验以评定UL-94的易燃性。 - industry recognized that glowing wires ( caused by electrical overload) may put …

《幻兽帕鲁》游戏公司如何打造全球爆款 《幻兽帕鲁Palworld》怎么在Mac上玩?

玩法融合之外,《幻兽帕鲁》设计的成功和难点其实是把大部分系统及玩法结合得更紧密,做到多个系统之间互相强化。 “下班,该当帕鲁训练家了。”近日,记者从多个游戏群中看到,《幻兽帕鲁》正在取代其他游戏,成…

蓝桥杯-常用STL(一)

常用STL 🎈1.动态数组🎈2.vector的基础使用🔭2.1引入库🔭2.2构造一个动态数组🔭2.3插入元素🔭2.4获取长度并且访问元素🔭2.5修改元素🔭2.6删除元素🔭2.7清空 &#x1f38…

抽象类(Java)、模板方法设计模式

一、概念 在Java中有abstract关键字,就是抽象的意思,可用来修饰类和成员方法。 用abstract来修饰类,那这个类就是抽象类;修饰方法,那这个方法就是抽象方法。 修饰符 abstract class 类名{修饰符 abstract 返回值类型…

知识库是什么 产品经理必须知道的行业知识

现如今,我们生活在一个知识爆炸的时代。对于产品经理来说,信息不再是稀缺资源,如何高效地管理和利用这些信息,是他们面临的重要问题。这时,知识库便悄然成为产品经理必备的工具。所以,什么是知识库呢&#…

Python网络拓扑库之mininet使用详解

概要 网络工程师、研究人员和开发人员需要进行各种网络实验和测试,以评估网络应用和协议的性能,以及解决网络问题。Python Mininet是一个功能强大的工具,它允许用户创建、配置和仿真复杂的网络拓扑,以满足各种实际应用场景。本文…

2024美赛备战--六大题型常用模型简要分析

美国大学生数学建模竞赛(MCM)是全球知名的数学建模比赛之一,每年都吸引了来自世界各地的学生参加。在这场充满挑战的竞赛中,参赛者将面对多种题目,需要利用他们的数学建模技能来解决实际问题。下面,建模忠哥…

深入了解Yum:Linux系统的软件包管理利器

目录 软件包 软件包的来源 关于yum yum是什么 yum的相关操作 介绍rzsz rz(从Windows本地传到Linux服务器) sz(从Linux服务器传到Windows本地) 注意事项 查看软件包 安装软件 卸载软件 yum的本地配置 为什么要进行配置…

Redis学习——高级篇④

Redis学习——高级篇④ Redis7高级之Redis与Mysql数据双写一致性工程案例(四) 4.1 MySQL主从复制原理4.2 canal 工作原理4.3 mySQL->canal->redis 双写一致性1.环境2.配置Mysql3.配置canal4. Canal客户端(Java编写&#xff0…