Skip to Content
Nextra 4.0 is released 🎉
笔记Webyarn前端不可缺少的包管理工具

yarn前端不可缺少的包管理工具

简介

Yarn 是一个用于管理 JavaScript 项目依赖关系的包管理工具。它是由 Facebook、Google、Exponent 和 Tilde 团队共同开发的,并且在开源社区中得到广泛支持和使用。

Yarn 的目标是解决 npm(Node Package Manager)在性能和可靠性方面的一些问题。它提供了更快的下载速度、更一致的依赖关系解析、更好的缓存管理以及更简洁的命令行界面。

以下是 Yarn 的一些主要特点和功能:

  1. 快速和可靠的依赖关系解析:Yarn 使用一个锁定文件(yarn.lock)来确保在不同环境中安装相同的依赖项版本。这消除了开发人员之间由于依赖项版本不一致而引起的问题。
  2. 并行安装:Yarn 支持并行下载和安装依赖项,可以显著加快项目的构建速度。
  3. 离线模式:Yarn 允许在没有网络连接的情况下进行安装和构建,只要之前已经下载过依赖项并缓存在本地。
  4. 自动版本解决:Yarn 可以自动解决依赖项之间的版本冲突,并生成一个满足所有依赖项版本要求的解决方案。
  5. 可选择的网络源:Yarn 允许开发人员选择使用不同的网络源来下载依赖项,包括官方源、镜像源或私有源。

官网 

安装

npm install yarn -g

常用命令

yarn init

创建package.jsonyarn init --yesyarn init -y跳过会话直接生成package.json

yarn install

安装所有依赖包,目录中存在 yarn.lock 文件,Yarn 将根据该文件中的锁定信息来确保安装的依赖项版本与先前安装的一致,不存在yarn.lock 则根据 package.json 文件中的依赖项信息来确定要安装的包的版本,并生成一个新的 yarn.lock 文件

yarn add <foo>

添加依赖包,默认开发环境,依赖会记录在package.jsondependencies

yarn add <foo> --dev

添加依赖包,生产环境,依赖会记录在package.jsondevDependencies

yarn add <foo>@<version>

添加指定版本依赖包

yarn global add <foo>

全局添加依赖包

yarn upgrade

更新所有依赖包

yarn upgrade <foo>

更新指定包

yarn remove <foo>

移除指定包

yarn start <script>

运行脚本,package.json中的scripts

yarn list

列出所有安装的依赖包

yarn info <script>

查看某个包信息

yarn config list

显示当前配置

yarn config set <key> <value>

设置配置

yarn config get <key>

获取某个配置

yarn config delete <key>

删除某个配置

yarn cache list

列出已缓存的每个包

yarn cache dir

返回 全局缓存位置

yarn cache clean

清除缓存

yarn命令选项

--cache-folder

指定用于存储Yarn缓存的自定义文件夹路径

--check-files

在安装过程中验证包的文件树以确保一致性。

--cwd

指定要使用的工作目录路径(默认为当前用户的主目录)

--disable-pnp

禁用Plug’n’Play安装。

--emoji [bool]

启用输出中的表情符号(默认为false)

--enable-pnp

—pnp:启用Plug’n’Play安装

--flat

只允许一个版本的包存在

--focus

通过安装其兄弟工作区的远程副本,将焦点集中在单个工作区上

--force

即使之前已构建过,也安装和构建包,覆盖锁定文件

--frozen-lockfile

不生成锁定文件,并在需要更新时失败

--global-folder

指定用于存储全局包的自定义文件夹路径

--har

保存网络流量的HAR输出

--ignore-engines

忽略引擎检查

--ignore-optional

忽略可选依赖项

--ignore-platform

忽略平台检查

--ignore-scripts

不运行生命周期脚本

--json

将Yarn日志消息格式化为JSON行(参见jsonlines.org)

--link-duplicates

在node_modules中创建对重复模块的硬链接

--link-folder

指定用于存储全局链接的自定义文件夹路径

--modules-folder

将模块输出到指定的文件夹路径,而不是相对于当前工作目录的node_modules文件夹中

--mutex [:specifier]

使用互斥锁确保只有一个Yarn实例在执行

--network-concurrency

并发网络请求的最大数量

--network-timeout

网络请求的TCP超时时间

--no-bin-links

在设置包时不生成二进制链接

--no-default-rc

防止Yarn自动检测yarnrc和npmrc文件

--no-lockfile

不读取或生成锁定文件

--non-interactive

不显示交互提示

--no-node-version-check

在使用可能不受支持的Node版本时不发出警告

--no-progress

禁用进度条

--offline

如果本地缓存中没有所需的依赖项,则触发错误

--otp

用于双因素身份验证的一次性密码

--prefer-offline

仅在本地缓存中没有依赖项时使用网络

--preferred-cache-folder

指定可用时用于存储Yarn缓存的自定义文件夹路径

--prod

—production [prod]:仅安装生产依赖项

--proxy

设置代理服务器

--pure-lockfile

不生成锁定文件

--registry

覆盖配置中的注册表URL

-s, --silent

跳过Yarn的控制台日志,但会打印其他类型的日志(如脚本输出)

--scripts-prepend-node-path [bool]

在脚本中将Node可执行文件目录添加到PATH中

--skip-integrity-check

在运行安装时跳过检查node_modules是否已安装

--strict-semver

使用严格的语义版本控制

--update-checksums

从当前存储库更新包的校验和

--use-yarnrc

指定Yarn应使用的yarnrc文件路径(仅限.yarnrc,不包括.npmrc)

-v, --version

输出Yarn的版本号

--verbose

输出内部操作的详细消息

-h, --help

输出使用信息。

yarn相关命令,可通过yarn [command] -h 获取帮助信息

  1. access:管理包的访问权限。
  2. add:添加一个或多个包到项目的依赖项中。
  3. audit:检查项目的依赖项是否存在安全漏洞。
  4. autoclean:自动清理项目中未使用的依赖项。
  5. bin:显示或运行项目中的二进制文件。
  6. cache:管理Yarn的缓存。
  7. check:检查项目的依赖项是否已安装并且与 yarn.lock 文件一致。
  8. config:配置Yarn的设置。
  9. create:创建新的Yarn项目。
  10. exec:在项目上下文中执行命令。
  11. generate-lock-entry / generateLockEntry:生成 yarn.lock 文件的条目。
  12. global:管理全局安装的包。
  13. help:获取有关Yarn命令的帮助信息。
  14. import:将包从其他包管理工具导入到Yarn。
  15. info:获取有关包的信息。
  16. init:在当前目录中初始化一个新的Yarn项目。
  17. install:安装项目的依赖项。
  18. licenses:列出项目依赖项的许可证信息。
  19. link:将本地包链接到项目中。
  20. list:列出项目的依赖项。
  21. login:登录到Yarn的注册表。
  22. logout:注销Yarn的注册表。
  23. node:在指定的Node版本下运行命令。
  24. outdated:检查项目的依赖项是否已过时。
  25. owner:管理包的所有者。
  26. pack:将包打包为压缩文件。
  27. policies:管理项目的策略。
  28. publish:发布包到注册表。
  29. remove:从项目的依赖项中移除一个或多个包。
  30. run:运行项目中定义的自定义脚本。
  31. tag:管理包的标签。
  32. team:管理包的团队。
  33. unlink:取消链接本地包。
  34. unplug:将包从Plug’n’Play安装模式中解除。
  35. upgrade:升级项目的依赖项。
  36. upgrade-interactive / upgradeInteractive:以交互方式升级项目的依赖项。
  37. version:显示Yarn的版本号。
  38. versions:显示包的可用版本。
  39. why:解释为什么某个包被安装。
  40. workspace:在工作区中执行命令。
  41. workspaces:管理Yarn工作区。

镜像源

yarn config set registry <registry>

设置镜像源

  1. npm 官方原始镜像网址是:https://registry.npmjs.org/ 
  2. 淘宝 NPM 镜像:https://registry.npm.taobao.org 
  3. 阿里云 NPM 镜像:https://npm.aliyun.com 
  4. 腾讯云 NPM 镜像:https://mirrors.cloud.tencent.com/npm/ 
  5. 华为云 NPM 镜像:https://mirrors.huaweicloud.com/repository/npm/ 
  6. 网易 NPM 镜像:https://mirrors.163.com/npm/ 
  7. 中科院大学开源镜像站:http://mirrors.ustc.edu.cn/ 
  8. 清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn 
Last updated on