Yarn
![]() | |
开发者 | Meta Platforms |
---|---|
首次发布 | 2016年6月18日[1] |
当前版本 |
|
源代码库 | https://github.com/yarnpkg |
编程语言 | JavaScript |
平台 | 跨平台 |
类型 | 套件管理器 |
许可协议 |
|
网站 | yarnpkg |
Yarn 是其中一种主要的 JavaScript 套件管理器,[3][4] 由 Meta(前身为 Facebook)于 2016 年应对 Node.js JavaScript 平台执行环境所开发。 作为 NPM 套件管理器的替代方案,Yarn 是由 Facebook、Exponent(现在为 Expo.dev)、谷歌和 Tilde(Ember.js 背后的公司)协力开发,主要是用于解决大型基准原始程式码的一致性、安全性和性能问题。[5]
功能
使用者可以撰写Yarn平台的外挂。
约束程式码(constraints)
Yarn 约束程式码可以让用户在工作空间范围内中为其相依套件或清单字段强制规定执行规则。
离线快取(Offline cache)
下载的套件能被以单一档案的方式快取或储存。
随插即用(Plug'n'Play)
随插即用(Plug'n'Play)能让用户在没有 node_modules
资料夹的情况下执行 Node 专案,定义了使用 随插即用控制(Plug-n-Play-control)档案分析相依性套件档案的方式或位置。此功能专门在修复结构不良的 node_modules
架构,从而加快 Node.js 应用程序的启动时间。
外挂(Plugins)
外挂(Plugins)可以添加新的解析器(resolvers)、接收器(fetchers)、连结器(linkers)、指令(commands),也可以注册一些事件或者互相整合,Yarn的大部分功能都是通过外挂实作的,包括yarn add
和yarn install
,也是预先安装好的外挂。
协定(Protocols)
用户可以定义将使用哪种协定来解析某些套件,例如,git 协定是用于从 Git 存储库下载公用套件,patch 协定用于建立原始套件的修正副本。
发布流程(Release Workflow)
发布流程(Release Workflow) 会在原始套件(root package)完成升级之后,自动升级单一储存库工作区之间的相关套件。
工作区(Workspaces)
工作区(Workspaces)可以让多个专案在同一个存储库中一起进行工作,并在修改原始程式码时自动套用修改到其他相关专案,使其可以通过只有执行一次安装命令来一次安装多个套件。
与NPM的比较
- Yarn 可以从本机暂存区安装套件。[6]
- Yarn 强烈绑定套件的版本。
- Yarn 使用校验(checksum)和来确保资料完整性,对比 NPM 使用 SHA-512 来检查下载套件的资料完整性。[7]
- Yarn 以平行的方式安装套件,对比 NPM 以一次性的方式安装一个套件。
语法
安装Yarn:
npm install -g yarn
注意:npm安装预设为"yarn classic",即第一个版本;如需安装最新版,则须再额外执行下列步骤:[1] (页面存档备份,存于互联网档案馆)
corepack enable yarn set version stable
利用Yarn安装套件[8]
yarn add [package-name]
或是将套件加入"devDependencies"
yarn add -D [package-name]
注意:在第一个版本中是这样安装:
yarn install [package-name] --save-dev
参见
参考文献
- ^ Earliest releases of yarn. GitHub. [Jun 18, 2016]. (原始内容存档于2023-02-27).
- ^ Release 4.3.1. 2024年6月21日 [2024年6月27日].
- ^ Package management basics. MDN. 2022-09-28 [2023-04-10]. (原始内容存档于2023-05-21).
- ^ 5 best JavaScript Package Managers. Dunebook.com. 2022-02-05 [2023-04-10]. (原始内容存档于2023-04-21).
- ^ Yarn: A new package manager for JavaScript. Engineering at Meta. 2016-10-11 [2021-11-22]. (原始内容存档于2023-06-15) (美国英语).
- ^ Package Manager – NPM and Yarn Explained with Examples. Sitepoint. 2021-09-21 [2023-04-10]. (原始内容存档于2023-05-17).
- ^ How To Install and Use the Yarn Package Manager for Node.js. DigitalOcean. 2021-08-10 [2023-04-10]. (原始内容存档于2023-03-26).
- ^ Yarn vs npm: Everything You Need to Know. CodeSweetly. 2023-02-04 [2023-04-10]. (原始内容存档于2023-05-19).