yarn 现代的包管理工具 介绍

一、前言

在这里插入图片描述

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 项目了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bat脚本:批量生成创建数据库的SQL语句

需求来源:使用 Navicat等数据库工具点击“转储SQL文件”会生成一个 xxx.sql 的文件,xxx是导出的数据库名。导出的数据库多了,就会一次性生成很多这样的SQL文件,所以需要写个脚本根据这些SQL脚本文件来批量生成创建数据库的SQL语句…

DX-11A DC0.075A 型信号继电器 柜内安装,板前接线

DX-11信号继电器; DX-11A信号继电器; DX-11B信号继电器; DX-11C信号继电器; DX-11Q信号继电器; DX-11A/Q信号继电器; DX-11B/Q信号继电器; DX-11C/Q信号继电器; 一. 用途 DX-11/0.…

React16源码: React中LegacyContext的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…

自建DNS劫持服务器,纯内网劫持PS5,屏蔽更新,自动hen

背景:目前PS5首次折腾必须要连外网,还要改DNS,除非使用ESP8266/32, 本文的方法是完全不改DNS,不使用ESP8266,不连接外网的情况下自动折腾 能实现什么: 1.折腾全程不连接外网 2.完全自建hen服务器&#xff…

时间序列表征之SAX(Symbolic Aggregate approXimation)实战python讲解

一、前言 sax理论篇:时间序列表征之SAX(Symbolic Aggregate approXimation)算法 二、sax实现 2.1 过程 标准化(将数据转换为高斯分布)paadiscretization 2.2 标准化 因为原文中采用的breakpoints为 前提假设为&#xf…

Redis五种数据类型及应用场景

1、数据类型 String(字符串,整数,浮点数):做简单的键值对缓存 List(列表):储存一些列表类型的数据结构 Hash(哈希):包含键值对的无序散列表,结构化的数据 Set(无序集合):交集,并集…

Java多线程--同步机制解决线程安全问题方式二:同步方法

文章目录 一、同步方法(1)同步方法--案例11、案例12、案例1之同步监视器 (2)同步方法--案例21、案例2之同步监视器的问题2、案例2的补充说明 二、代码及重要说明(1)代码(2)重要说明 …

云计算HCIE备考经验分享

大家好,我是来自深圳信息职业技术学院22级鲲鹏3-1班的刘同学,在2023年9月19日成功通过了华为云计算HCIE认证,并且取得了A的成绩。下面把我的考证经验分享给大家。 转专业进鲲鹏班考HCIE 大一上学期的时候,在上Linux课程的时候&…

代码随想录 Leetcode222.完全二叉树的节点个数

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月30日&#xff09;&#xff1a; class Solution { public:int countNodes(TreeNode* root) {int res 0;if (root nullptr) return res;queue<TreeNode*> deque;TreeNode* cur root;deque.push(cur);int size 0;w…

注册亚马逊店铺用动态IP可以吗?

注册亚马逊店铺可以用动态IP&#xff0c;只要是独立且干净的网线就没问题&#xff0c;亚马逊规则要求一个IP地址只能出现一个亚马逊店铺&#xff0c;若使用不当会导致关联账户。 固定ip可以给我们的账户带来更多的安全&#xff0c;要知道关联问题是亚马逊上的一个大问题&#…

DBCO-PEG8-Amine,二苯并环辛炔 PEG8 氨基,具有良好反应活性

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;二苯并环辛炔-八聚乙二醇-氨基&#xff0c;二苯并环辛炔 PEG8 氨基&#xff0c;DBCO-PEG8-NH2&#xff0c;DBCO-PEG8-Amine 一、基本信息 产品简介&#xff1a;DBCO-PEG8-NH2 is a compound with good reactivity. …

ubuntu20.04安装sumo

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 有问题&#xff0c;请大家指出&#xff0c;争取使方法更完善。这只是ubuntu安装sumo的一种方法。一、注意事项1、首先明确你的ubuntu的用户名是什么 二、sumo安装1.…

Python爬虫实践指南:利用cpr库爬取技巧

引言 在信息时代&#xff0c;数据是无价之宝。为了获取网络上的丰富数据&#xff0c;网络爬虫成为了不可或缺的工具。在Python这个强大的编程语言中&#xff0c;cpr库崭露头角&#xff0c;为网络爬虫提供了便捷而高效的解决方案。本文将深入探讨如何利用cpr库实现数据爬取的各…

Ruff应用:打破传统,IoT技术赋能工业制造数字化转型之路

近年来&#xff0c;随着物联网、大数据、云计算、5G等数字技术的快速应用&#xff0c;工业制造领域正在经历着前所未有的变革。工业4.0时代&#xff0c;各种数字技术与工业制造的结合&#xff0c;不仅提高了工业生产效率、降低运营成本&#xff0c;更是极大地推动了传统工业数字…

智能小程序事件系统——SJS响应事件实现方案

背景信息 如有频繁用户交互&#xff0c;在小程序上表现是比较卡顿的。例如&#xff0c;页面有 2 个元素 A 和 B&#xff0c;用户在 A 上做 touchmove 手势&#xff0c;要求 B 也跟随移动&#xff0c;movable-view 就是一个典型的例子。一次 touchmove 事件的响应过程为&#x…

GPT-4 Vision调试任何应用,即使缺少文本日志 升级Streamlit七

GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二翻译: GPT-4 Vision静态图表转换为动态数据可视化 升级Streamlit 三翻译: GPT-4 Vision从图像转换为完全可编辑的表格 升级St…

springboot 个人网盘系统 java web网盘文件分享系统 web在线云盘

springboot 个人网盘系统 java web网盘文件分享系统 web在线云盘 开发工具&#xff1a;Eclipse/idea Java开发环境&#xff1a;JDK8.0 Web服务器:Tomcate9.0。 数据库&#xff1a;MySQL数据库。 技术框架&#xff1a;Struts2SpringHibernate和JSP 有详细的源码&#xff0…

人脸识别技术在网络安全中有哪些应用前景?

人脸识别技术在网络安全中有广泛的应用前景。以下是一些主要的应用方向&#xff1a; 1. 身份验证和访问控制&#xff1a;人脸识别可以用作一种更安全和方便的身份验证方法。通过将用户的人脸与事先注册的人脸进行比对&#xff0c;可以实现强大的身份验证&#xff0c;避免了传统…

自动驾驶:Apollo如何塑造人类的未来出行

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言1. 什么是自定义指令&#xff1f;2. Apollo中的自定义指令2.1 查询中的自定…

开源博客项目Blog .NET Core源码学习(8:EasyCaching使用浅析)

开源博客项目Blog使用EasyCaching模块实现缓存功能&#xff0c;主要是在App.Framwork项目中引用了多类包&#xff0c;包括内存缓存&#xff08;EasyCaching.InMemory&#xff09;、Redis缓存&#xff08;EasyCaching.CSRedis&#xff09;&#xff0c;同时支持多种序列化方式&am…