入门
安装
安装核心包
管理 Yarn 的首选方法是通过Corepack,这是从 16.10 开始随所有 Node.js 版本一起提供的新二进制文件。它充当你和 Yarn 之间的中介,让你可以在多个项目中使用不同的包管理器版本,而无需再签入 Yarn 二进制文件。
Node.js >=16.10
Corepack 默认包含在所有 Node.js 安装中,但目前是可选的。要启用它,请运行以下命令:
corepack enable
Node.js <16.10
在 16.10 之前的版本中,Corepack 不包含在 Node.js 中;要解决这个问题,请运行:
npm i -g corepack
更新全局 Yarn 版本
Node.js ^16.17 或 >=18.6
corepack prepare yarn@stable --activate
Node.js <16.17 或 <18.6
查看最新的 Yarn 版本,记下版本号,然后运行:
corepack prepare yarn@<version> --activate
初始化你的项目
只需运行以下命令。它会在你的当前目录中生成一些文件;将它们全部添加到您的下一次提交中,您就完成了!
yarn init -2
注意:默认情况下,
yarn init -2
会将您的项目设置为与Zero-Installs兼容,这需要在存储库中签入缓存;如果你想禁用它,请检查你的.gitignore
。
注意:如果您从 Yarn 1.x 迁移并遇到障碍,您可能需要查看我们的迁移指南。它并不总是需要的,但是关于如何解决过渡中可能出现的问题的相当全面的资源。
更新到最新版本
任何时候你想将 Yarn 更新到最新版本,只需运行:
yarn set version stable
然后 Yarn 将配置您的项目以使用最新的稳定二进制文件。在提交结果之前,不要忘记运行新安装来更新您的工件!
从 master 安装最新版本
有时即使是最新的版本也不够,然后你会想尝试最新的 master 分支来检查错误是否已修复。这变得非常简单!只需运行以下命令:
yarn set version from sources
同样,可以使用--branch
标志安装特定的 PR:
yarn set version from sources --branch 1211
用法
现在你已经安装了 Yarn ,你可以开始使用它了!以下是您需要的一些最常用的命令。
从 Yarn 1 迁移
在下列迁移指南中从 Yarn 1 移植时,我们一直在编写有用的建议。如果您看到尚未涵盖的内容,请看一看并为它做出贡献!确保查阅 PnP 兼容性表并在需要时启用node-modules插件!
访问命令列表
yarn help
开始一个新项目
yarn init
安装所有依赖项
yarn
yarn install
添加依赖项
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
为不同类别的依赖项添加依赖项
yarn add [package] --dev # dev dependencies
yarn add [package] --peer # peer dependencies
升级依赖
yarn up [package]
yarn up [package]@[version]
yarn up [package]@[tag]
删除依赖项
yarn remove [package]
升级 Yarn 本身
yarn set version latest
yarn set version from sources
命令行界面
yarn run
运行 package.json 中定义的脚本。
用法
$> yarn run <scriptName> ...
例子
从本地工作区运行测试:
yarn run test
同样的事情,但没有“run”关键字:
yarn test
在运行时检查 Webpack:
yarn run --inspect-brk webpack
选项
定义 | 描述 |
---|---|
--inspect |
执行二进制文件时转发到底层 Node 进程 |
--inspect-brk |
执行二进制文件时转发到底层 Node 进程 |
-T,--top-level |
检查脚本和/或二进制文件的根工作区而不是当前的 |
-B,--binaries-only |
忽略任何用户定义的脚本,只检查二进制文件 |
细节
此命令将运行一个工具。将被执行的确切工具将取决于工作区的当前状态:
-
如果本地 package.json 中的
scripts
字段包含匹配的脚本名称,则将执行其定义。 -
否则,如果本地工作区的依赖项之一暴露了具有匹配名称的二进制文件,则该二进制文件将被执行。
-
否则,如果指定的名称包含冒号字符,并且项目中的一个工作区恰好包含一个具有匹配名称的脚本,则将执行该脚本。
无论发生什么,衍生进程的 cwd 将是声明脚本的工作区(这使得使用第三种语法跨工作区调用命令成为可能)。
//End of Article