重要提示:本文档涵盖 Yarn 1(经典版)。
如需 Yarn 2+ 文档和迁移指南,请参阅 yarnpkg.com。

Yarn 创建和 Yarn 1.0

Maël Nison 于 2017 年 5 月 12 日发布

去年对 JavaScript 新手来说是收获颇丰的一年!很多启动工具包项目已经发布并经过改进,而且其中一些最终都提供了专用来简化项目创建的命令行工具。这方面的示例包括 create-react-app,但大多数框架在语法和风格上有自己的工具。

尽管有这些工具,但仍然存在一个问题:在开始新项目之前,用户仍然需要了解如何使用其软件包管理器。他们需要知道全局软件包和本地软件包之间的区别,以及如何确保可以通过 shell 使用二进制文件,这有时会导致微妙的问题。此外,由于这些全局安装工具需要手动更新,因此大多数项目都会维护一个下载最新工具版本的简单命令行界面封装器。幸运的是,我们有能力提供帮助,让构建新应用程序更加统一。

yarn create <pkg-name>

通过 yarn create,可以使用许多现有项目开始构建应用程序。

  • yarn create react-app my-app
  • yarn create react-native-app my-app
  • yarn create next-app my-app

运行 create 命令后,会自动安装或更新请求的软件包,在其名称前面加上 create- 前缀。运行 yarn create react-app 将首先执行与 yarn global add create-react-app 相同的操作。然后,一旦软件包安装完毕,Yarn 将运行新安装的软件包的 package.jsonbin 字段中找到的可执行文件,并将任何剩余的命令行参数转发给它。

对我们而言,保持特性的精巧和可扩展性很重要。Yarn 应该是一款轻量化的工具,而 yarn create 也绝不例外:一个直接的影响是 create 命令是一个完全不可知的工具:对于你想要创建的内容,我们没有任何假设,并将所有行为委派给 create-* 软件包!我们希望社区能想出使用此工具的创造性方法。创建应用程序只是其中一件事!不妨创建可以创建测试、自述文件、变更日志或任何你想要创建的内容的软件包!

注意:create- 前缀会插入在软件包名称之前。因此,例如,如果你运行 yarn create @ng/app,它将安装 @ng/create-app 软件包,然后运行它。

其他改进

yarn create 只是我们在过去几周一直努力完成的众多事情之一。由于许多开源贡献者的众多请求拉取,最新发布版本还附带了以下功能和改进

  • 离线镜像不再需要更改 yarn 锁定文件(#2970
  • 现在可以在 yarnrc 文件中设置命令行参数和环境变量(#3033#3218
  • 现在已实现 Prepare 和 prepublish-only 生命周期挂钩(#3004
  • 如果单个项目使用了离线镜像,就可以对其进行裁剪(#2836
  • 对 yarn pack 的各种改进(#3175#3092

过去几个月中的所有改进和错误修正列在我们的 GitHub 上的发行版本部分。我们特别要向代尔夫特理工大学团队致谢:蒂姆·范德利佩克里斯·兰豪特杰斯·韦特林斯卓舜余。他们四人做了一份很棒的 Yarn 项目分析,并且发送了多个请求来在许多方面对它进行改进。他们还指出了我们的测试覆盖中的空白,我们的新核心贡献者 西蒙·沃塞拉 一直在努力改进这一点。

Yarn 1.0 规划

自 7 个月前首次发布以来,Yarn 已取得了巨大的改进,该项目的请求数近期已超过 1,000。目前,我们计划在今年夏季发布 Yarn 1.0,这其中将包含稳定性改进、新功能和性能提升。要详细了解 Yarn 的现在和未来,请观看康斯坦丁的演讲 构建高质量 JavaScript 工具

我们感谢每一位帮助我们使此项目变得如此出色的用户。如果你想为 Yarn 做出贡献,请随时在 GitHubDiscord 上联系我们。