跳至主要內容

yarn

Siona大约 4 分钟

yarn

1. npm 安装 yarn

# 列出所有的 node 版本
nvm list

# 安装 node
nvm install v18.19.0

# 使用安装的 node 版本
nvm use v18.19.0

# 查看当前 node 版本
node -v

# 没有 yarn,则使用 npm 安装 yarn
npm install -g yarn

# 查看 yarn 当前镜像源
yarn config get registry

# 设置 yarn 镜像源为淘宝镜像
yarn config set registry https://registry.npm.taobao.org/

# 如果 yarn install 有误时。可重新 install 或者清除重新执行
yarn install --force
yarn cache clean

2. yarn 命令

# 安装yarn 
npm install -g yarn

# 安装最新版本 yarn(升级 yarn 到最新版)
npm install yarn@latest -g

# yarn 升级到指定版本
yarn upgrade v1.21.3

# 安装成功后,查看版本号: 
yarn --version

# 创建文件夹 yarn 
md yarn

# 进入 yarn 文件夹 
cd yarn

# 初始化项目 
yarn init     # 同npm init,执行输入信息后,会生成package.json文件

# yarn的配置项: 
yarn config list     # 显示所有配置项
yarn config get <key>    # 显示某配置项
yarn config delete <key>     # 删除某配置项
yarn config set <key> <value> [-g|--global]     # 设置配置项

yarn config get registry  # 查看yarn当前镜像源
yarn config set registry https://registry.npm.taobao.org/  # 设置yarn镜像源为淘宝镜像

# 安装包: 
yarn install     # 安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock
yarn install --flat      # 安装一个包的单一版本
yarn install --force     # 强制重新下载所有包
yarn install --production      # 只安装dependencies里的包
yarn install --no-lockfile      # 不读取或生成yarn.lock
yarn install --pure-lockfile   # 不生成yarn.lock

# 添加包(会更新 package.json 和 yarn.lock):
yarn add [package]     # 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中
yarn add [package]@[version]     # 安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数
yarn add [package]@[tag]     # 安装某个tag(比如beta,next或者latest)

# 不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型:
yarn add --dev/-D    # 加到 devDependencies
yarn add --peer/-P    # 加到 peerDependencies
yarn add --optional/-O    # 加到 optionalDependencies

# 默认安装包的主要版本里的最新版本,下面两个命令可以指定版本:
yarn add --exact/-E    # 安装包的精确版本。例如yarn add foo@1.2.3会接受1.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3版
yarn add --tilde/-T    # 安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接受1.2.9,但不接受1.3.0

# 发布包
yarn publish

# 移除一个包 
yarn remove <packageName>    # 移除一个包,会自动更新package.json和yarn.lock

# 更新一个依赖 
yarn upgrade     # 用于更新包到基于规范范围的最新版本

# 运行脚本 
yarn run     # 用来执行在 package.json 中 scripts 属性下定义的脚本

# 显示某个包的信息 
yarn info <packageName>     # 可以用来查看某个模块的最新版本信息

# 缓存 
yarn cache 
yarn cache list   # 列出已缓存的每个包 
yarn cache dir    # 返回 全局缓存位置 
yarn cache clean   # 清除缓存

# 升级 yarn 版本【需要梯子】
yarn set version latest # 升级 yarn 到最新版本

举例:

yarn add ant-design-vue@1.7.8 --save -E
yarn add ant-design-vue@^3.2.20 # ^ 向上兼容版本

其他

yarn 安装报错

(base) xinna@xinnas-Mac-mini workflow % yarn add axios
yarn add v1.22.21
[1/4] 🔍  Resolving packages...
error Error: certificate has expired
    at TLSSocket.onConnectSecure (node:_tls_wrap:1674:34)
    at TLSSocket.emit (node:events:514:28)
    at TLSSocket._finishInit (node:_tls_wrap:1085:8)
    at ssl.onhandshakedone (node:_tls_wrap:871:12)
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

一般出现这个问题是因为开了代理服务器访问。

yarn config set "strict-ssl" false -g

# 示例
(base) xinna@xinnas-Mac-mini workflow % yarn config set "strict-ssl" false -g
yarn config v1.22.21
success Set "strict-ssl" to "false".
✨  Done in 0.01s.

yarn install 报错

error vuepress-theme-hope@2.0.0-rc.2: The engine "yarn" is incompatible with this module. Expected version ">=2". Got "1.22.21"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

报错原因:版本不兼容导致的。必须使用 yarn>=2 版本。使用 npm install -g yarn 只会安装 yarn1 版本。

# 查看 yarn 版本
$ yarn -v
1.22.21

# 切换 yarn 到最新版本
$ yarn set version latest
(base) xinna@xinnas-MacBook-Air siona-book % yarn set version latest
Warning: Your current Yarn binary is currently Yarn 1.22.21; to avoid potential breaking changes, 'set version latest' won't receive upgrades past the 1.22.x branch.
         To upgrade to the latest versions, run yarn set version stable instead. Sorry for the inconvenience.

Resolving latest to a url...
Downloading https://github.com/yarnpkg/yarn/releases/download/v1.22.21/yarn-1.22.21.js...
Saving it into /Users/xinna/Documents/WorkSpace/webstorm/siona/siona-book/.yarn/releases/yarn-1.22.21.cjs...
Updating /Users/xinna/Documents/WorkSpace/webstorm/siona/siona-book/.yarnrc...
Done!

# 遇到警告,使用 yarn set version stable 代替【运行后报以下错误】
error AggregateError
    at internalConnectMultiple (node:net:1114:18)
    at afterConnectMultiple (node:net:1667:5)
info Visit https://yarnpkg.com/en/docs/cli/policies for documentation about this command.

# berry 是 yarn2 版本
yarn set version berry
yarn policies set-version berry

# 以上都失败了,最终还是使用了 npm install