📦🐈 Active development trunk for Yarn ⚒
This repository is empty
Translated by AI, submit an issue feedback
快速、可靠且安全的依赖管理工具。
Yarn 是一款现代化的包管理器,由多个包组件构成。其创新架构使其能够实现现有解决方案无法完成的功能:
- Yarn 支持插件;添加插件就像将其添加到您的代码库中一样简单
- Yarn 默认支持 Node,但不仅限于此——插件可以添加对其他语言的支持
- Yarn 原生支持工作区,其 CLI 充分利用了这一特性
- Yarn 使用类 bash 的可移植 shell,使包脚本可在 Windows、Linux 和 macOS 之间移植
- Yarn 首先是一个可通过编程方式使用的Node API(通过@yarnpkg/core)
- Yarn 采用TypeScript编写,并进行了全面的类型检查
支持我们
金牌赞助商
|
|
所有环境变量,集中管理。无需再为零散的 API 密钥而烦恼,无需再拼凑自制工具,无需再回避访问控制。借助Doppler,让您的团队和服务器保持同步。 |
|
|
您的应用,企业级就绪。只需几行代码,即可开始向企业客户销售。借助WorkOS,在几分钟内(而非几个月)添加单点登录(及更多功能)。 |
同时也感谢以下机构
|
Datadog 已赞助我们首席维护者的工作时间超过一年。他们还为我们升级了账户,使我们能够受益于长期遥测功能(RFC)。 |
|
|
SysGears 同样在 2.x 版本开发初期就提供了时间赞助。特别是,他们的大力投入是 Yarn 2 对 node_modules 安装的支持甚至比以往更好的原因。 |
|
|
Netlify 一直是我们网站的长期服务提供商。每当我们遇到问题,他们都会及时伸出援手。他们的实时预览功能在我们的开发过程中非常有帮助。 |
|
Cloudflare 也是我们的长期合作伙伴。虽然我们不再直接镜像 npm 注册表,但他们仍然为我们的网站提供支持,以确保其交付速度尽可能快。 |
|
|
Algolia 多年来为我们的文档做出了巨大贡献。他们仍然为我们两个版本的文档提供搜索引擎支持。 |
安装
请参考 安装指南。
迁移
请参考 迁移指南。
文档
文档可在 yarnpkg.com 查阅。
API
API 文档可在 yarnpkg.com/api 查阅。
当前状态
除了传统的集成测试外,我们每天还会使用社区最新版本的工具链运行 Yarn 进行测试,以防万一。所有测试都应显示为绿色!
贡献指南
请参考 贡献指南。
构建您自己的包
克隆此仓库,然后运行以下命令:
yarn build:cli
工作原理
构建 CLI 后,全局的 yarn 将立即反映您的本地更改。这是因为 Yarn 会读取此仓库 .yarnrc.yml 中的 yarnPath 设置,该设置配置为在新构建的 CLI 可用时使用它。
开箱即用!
请注意,无需其他任何命令!由于我们的依赖项已签入仓库(位于 .yarn/cache 目录中),您甚至无需运行 yarn install。克隆项目后一切即可正常工作,并且保证十年后依然可用 🙂
Yarn 插件
默认插件
这些插件通常与 Yarn 捆绑提供。您无需执行任何特殊操作即可使用它们。
- plugin-compat 包含一些内置补丁,用于改进 PnP 支持。
- plugin-constraints 为 Yarn 添加了对 约束 的支持。
- plugin-dlx 添加了对
yarn dlx命令的支持。 - plugin-essentials 添加了各种被认为是包管理器必备的命令(add、remove 等)。
- plugin-exec 添加了在依赖项中使用
exec:协议的支持。 - plugin-file 添加了在依赖项中使用
file:协议的支持。 - plugin-git 添加了从 Git 仓库克隆包的支持。
- plugin-github 添加了使用 GitHub 引用作为依赖项的支持。此插件不使用 git。
- plugin-http 添加了使用直接 URL 引用作为依赖项的支持(仅限 tgz 归档)。
- plugin-init 添加了对
yarn init命令的支持。 - plugin-interactive-tools 添加了对各种交互式命令的支持(如
yarn upgrade-interactive)。 - plugin-link 添加了在依赖项中使用
link:和portal:引用的支持。 - plugin-nm 添加了通过
node_modules文件夹安装包的支持。 - plugin-npm 添加了对使用 语义化版本范围 依赖项的支持,并从类 npm 注册表解析它们。
- plugin-npm-cli 添加了对 npm 特定命令的支持(如
yarn npm login、yarn npm publish等)。 - plugin-pack 添加了对
yarn pack命令的支持。 - plugin-patch 添加了对
patch:协议的支持。 - plugin-pnp 添加了通过 Plug'n'Play 规范安装 JavaScript 依赖项的支持。
- plugin-stage 添加了对
yarn stage命令的支持。 - plugin-typescript 改善了使用 TypeScript 时的用户体验。
- plugin-version 添加了对新 发布工作流 的支持。
- plugin-workspace-tools 添加了对
yarn workspaces foreach命令的支持。
第三方插件
第三方机构可以开发插件。要在您的应用程序中使用这些插件,只需在调用 yarn plugin import 时指定完整的插件 URL。请注意,目前插件并非从 npm 注册表获取,它们必须以单个 JavaScript 文件的形式分发。
创建新插件
如需创建您自己的插件,请参阅 文档。
通用包
以下包为通用包,可用于多种用途(包括实现其他包管理器,但不仅限于此):
- @yarnpkg/core 允许任何应用程序以编程方式操作项目。
- @yarnpkg/fslib 是一组工具,用于通过类型安全的基元抽象文件系统。
- @yarnpkg/libzip 包含编译为 WebAssembly 的 zlib+libzip 绑定。
- @yarnpkg/nm 包含
node_modules树构建器和提升器。 - @yarnpkg/parsers 可用于解析 @yarnpkg/shell 所使用的语言。
- @yarnpkg/pnp 可用于生成 Plug'n'Play 兼容的钩子。
- @yarnpkg/pnpify 是一个 CLI 工具,用于透明地为各种工具添加 PnP 支持。
- @yarnpkg/sdks 是一个 CLI 工具,用于生成 PnP 编辑器 SDK。
- @yarnpkg/shell 是一个可移植的类 bash shell 解释器。
Yarn 专用包
以下包旨在供 Yarn 自身使用,可能对其他应用程序没有用处:
- @yarnpkg/builder 包含一个用于打包 berry 及其插件的 CLI 工具。
- @yarnpkg/cli 是一个基于 @yarnpkg/core 构建的 CLI 入口点。