yarn的基本命令和用法

Yarn通过并行安装、离线模式、确定性安装以及更好的依赖解析算法,为开发者提供了更快、更稳定、更安全的包管理体验。它保留了npm的大部分功能,并在此基础上做了大量优化,下面我们就来详述Yarn的核心命令和实用技巧。📚

安装Yarn

首先,确保你的系统已经安装了Node.js。之后,可以通过多种方式安装Yarn

  • 1$ npm install -g yarn
  • 1brew install yarn

安装完成后,检查Yarn的版本以确认安装成功:

1$ yarn --version

基础命令

初始化项目

与npm的npm init类似,Yarn使用yarn init来创建package.json文件。同样,你可以使用-y跳过交互式问答直接生成默认配置:

1$ yarn init [-y]
安装包

Yarn使用yarn add命令安装包,它会自动添加到dependenciesdevDependencies中,取决于是否使用了--dev标志。

1$ yarn add [package-name] [--dev]

例如,安装React及其对应的TypeScript类型定义:

1$ yarn add react react-dom @types/react @types/react-dom
更新包

使用yarn upgrade命令来更新包,可以指定包名和版本号,或者不指定包名来更新所有包:

1$ yarn upgrade [package-name@version]
2$ yarn upgrade
移除包

yarn remove命令用于从项目中移除包,并从package.jsonnode_modules中删除其相关文件:

1$ yarn remove [package-name]

高级用法

锁定文件

Yarn通过yarn.lock文件确保每次安装得到完全相同的依赖树,保证了安装过程的确定性。这个文件应该被提交到版本控制系统中,以确保团队成员间的一致性。每当你添加或更新依赖时,Yarn会自动更新这个文件。

并行安装

Yarn利用并行处理能力,显著加快了依赖的安装速度。这是它相比npm的一个主要优势,尤其是在大型项目中。

离线模式

Yarn具备离线安装的能力,它会在本地缓存已下载的包,下次安装时直接从缓存中读取,提高了安装速度并降低了网络依赖。

工作空间管理

对于包含多个子项目的大型应用或 mono-repo(单一仓库),Yarn的工作空间(Workspaces)特性特别有用。它允许你在父级项目中管理所有子项目的依赖,简化了版本控制和依赖更新流程。

脚本执行

与npm一样,Yarn也支持在package.json中定义脚本,并通过yarn run执行。这使得自动化构建、测试、部署等任务变得简单直观:

 

Json

1"scripts": {
2  "start": "react-scripts start",
3  "build": "react-scripts build",
4  "test": "react-scripts test",
5  "eject": "react-scripts eject"
6}

执行脚本:

 

Bash

1$ yarn run start

其他实用命令

  • 列出包yarn list 显示项目中所有直接和间接依赖。
  • 清洁yarn clean 删除node_modules目录和yarn.lock文件,帮助你从头开始。
  • 检视yarn why [package-name] 查看为什么某个包会被安装,有助于诊断依赖问题。
  • 版本查询yarn outdated 显示所有可更新的包及其最新版本。
  • 缓存管理yarn cache clean 清理Yarn的缓存。

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

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

相关文章

【MySQL精通之路】InnoDB(7)-锁和事务模型(2)-事务模型

主博客: 【MySQL精通之路】InnoDB(7)-锁和事务模型-CSDN博客 上一篇: 【MySQL精通之路】InnoDB(7)-锁和事务模型(1)-锁-CSDN博客 下一篇: 目录 1.事务隔离级别 2.1 可重复读 2.2 读已提交 2.3 读取未提交 2.4 序列化读 2.自动提交、…

订餐系统总结、

应用层: SpringBoot:快速构建Spring项目,采用“约定大于配置”的思想,简化Spring项目的配置开发。 SpringMvc:Spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合,可以无缝集成。 Sprin…

完整的数据可视化方法集

在当前的大数据时代,了解如何可视化数据是UI/UX设计师技能的重要组成部分。如今,几乎所有的公司都需要良好的数据可视化作为确定业务方向和决策的参考。数据的可视化结果越好,用户的决策就越科学。 1、什么是数据可视化 数据可视化是将信息…

张量 t-product 积(matlab代码)

参考文献:Tensor Robust Principal Component Analysis with a New Tensor Nuclear Norm 首先是文章2.3节中 t-product 的定义: 块循环矩阵: 参考知乎博主的例子及代码:(t-product与t-QR分解,另一篇傅里叶对…

HTML5 设备访问及输入输出设备交互

目录 设备访问输入设备交互输出设备交互设备访问 设备信息访问 navigator.userAgent:获取浏览器的用户代理字符串,从中可以解析出设备类型、操作系统、浏览器版本等信息。 const userAgent = navigator.userAgent; console.log(userAgent); // 输出类似 "Mozilla/5.0…

算法(Algorithm)

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。也就是说,算法能够对一定规范的输入,在有限时间内获得所要求的输出。算法应该具有…

【python004】miniforge可行替代方案实战总结(最近更新中)

1.熟悉、梳理、总结项目研发实战中的miniforge日常使用中的问题。随着版本更新,做了一些变动,如商业化限制,取消一些语法等。 2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!

vue通过for循环生成input框后双向绑定失效问题

有些时候页面上有太多的表单元素&#xff0c;一个个的写太过繁琐&#xff0c;拿 input 框举例&#xff0c;众多的 input 框&#xff0c;无非就是输入框前的说明和 input 框的 name 属性不一样 <el-form :inline"true" :model"formInline" size"mi…

01-05.Vue自定义过滤器

目录 前言过滤器的概念过滤器的基本使用给过滤器添加多个参数 前言 我们接着上一篇文章01-04.Vue的使用示例&#xff1a;列表功能 来讲。 下一篇文章 02-Vue实例的生命周期函数 过滤器的概念 概念&#xff1a;Vue.js 允许我们自定义过滤器&#xff0c;可被用作一些常见的文本…

软件模块的耦合

软件模块的耦合 耦合是指软件模块之间的依赖程度&#xff0c;耦合越低&#xff0c;模块之间的独立性越高&#xff0c;软件的可维护性、可重用性也越高。下面是几种常见的耦合类型的概念&#xff1a; 数据耦合&#xff08;Data Coupling&#xff09;&#xff1a; 当一个模块通…

Python ❀ 使用代码解决今天中午吃什么的重大生存问题

1. 环境安装 安装Python代码环境参考文档 2. 代码块 import random# 准备一下你想吃的东西 hot ["兰州拉面", "爆肚面", "黄焖鸡", "麻辣香锅", "米线", "麻食", "羊肉泡馍", "肚丝/羊血汤&qu…

doxygen 1.11.0 使用详解(九)——包含公式

目录 Doxygen allows you to put LATEX formulas in the output (this works only for the HTML, LATEX and RTF output. To be able to include formulas (as images) in the HTML and RTF documentation, you will also need to have the following tools installed latex: …

定时监测服务器磁盘是否超过阈值,超过就删除docker 镜像

达到指定百分比 删除镜像脚本 df -h 查找到 内存占用信息 &#xff0c;得到的 文件系统名称是 overlay的&#xff0c;Use% 达到70就进行删除docker 镜像 #!/bin/bash# 设置磁盘使用阈值 THRESHOLD70# 获取 overlay 文件系统的磁盘使用百分比 DISK_USAGES$(df -h | grep overl…

利用sentence bert 实现语义向量搜索

目录 基于pytorch的中文语言模型预训练:https://github.com/zhusleep/pytorch_chinese_lm_pretrain/tree/master sentence_emb.py search_faiss_robert768.py faiss_index.py gen_vec_save2_faiss.py 基于pytorch的中文语言模型预训练:https://github.com/zhusleep/pytorch_…

[协议]stm32读取AHT20程序示例

AHT20温度传感器使用程序&#xff1a; 使用i2c读取温度传感器数据很简单&#xff0c;但市面上有至少两个手册&#xff0c;我这个对应的手册贴出来&#xff1a; main: #include "stm32f10x.h" // Device header #include <stdint.h> #includ…

数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行

由强降雨、台风造成城市低洼处出现大量积水、内涝的情况时有发生&#xff0c;给人们出行带来了极大不便和安全隐患&#xff0c;甚至危及群众生命财产安全。 为降低内涝造成的损失&#xff0c;一方面我们要大力加强城市排水基础设施的建设&#xff1b;另一方面要全面掌握城市内涝…

U-Boot menu菜单分析

文章目录 前言目标环境背景U-Boot如何自动调起菜单U-Boot添加自定义命令实践 前言 在某个厂家的开发板中&#xff0c;在进入它的U-Boot后&#xff0c;会自动弹出一个菜单页面&#xff0c;输入对应的选项就会执行对应的功能。如SD卡镜像更新、显示设置等&#xff1a; 目标 本…

docker命令详解大全

Docker是一种流行的容器化平台&#xff0c;用于快速部署应用程序并管理容器的生命周期。以下是一些常用的Docker命令及其用途的概述&#xff1a; docker run&#xff1a;创建一个新容器并运行一个命令。docker ps&#xff1a;列出当前运行的容器。docker stop&#xff1a;停止…

Unity射击游戏开发教程:(20)增加护盾强度

在本文中,我们将增强护盾,使其在受到超过 1 次攻击后才会被禁用。 Player 脚本具有 Shield PowerUp 方法,我们需要调整盾牌在被摧毁之前可以承受的数量,因此我们将声明一个 int 变量来设置盾牌可以承受的击中数量。

微信小程序画布显示图片绘制矩形选区

wxml <view class"page-body"><!-- 画布 --><view class"page-body-wrapper"><canvas canvas-id"myCanvas" type"2d" id"myCanvas" classmyCanvas bindtouchstart"touchStart" bindtouchmo…