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
命令安装包,它会自动添加到dependencies
或devDependencies
中,取决于是否使用了--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.json
和node_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的缓存。