如何在Azure DevOps流水线代理中安装yarn@2及以上版本
关于你的疑问解答
- 你的理解完全正确,已提交
.yarnrc.yml和.yarn子目录的前提下,无需每次构建重复执行迁移步骤。Yarn 2+(Berry)采用项目级绑定的设计,你提交的.yarn/releases目录下已经包含了对应版本的Yarn二进制文件,构建环境不需要全局安装高版本Yarn就能直接调用,重复执行yarn set version只会无意义消耗构建时间。
两种在Azure DevOps流水线中直接使用Yarn 2+的方案
方案一:直接调用仓库内置的Yarn(推荐)
该方案不需要额外安装任何Yarn相关组件,完全复用你已经提交到仓库的文件:
- 首先确认你已将以下必要文件提交到代码库:
.yarnrc.yml配置文件.yarn/releases/目录下的Yarn二进制文件(通常为yarn-<版本号>.cjs格式)yarn.lock依赖锁定文件- 如有使用自定义插件、依赖补丁,还需提交
.yarn/plugins/、.yarn/patches/目录
- 流水线中仅需先安装符合版本要求的Node.js(Yarn 3+要求Node >= 12.13.0),示例任务:
- task: NodeTool@0 inputs: versionSpec: '18.x' # 替换为你需要的Node版本 displayName: '安装Node.js'
- 后续直接调用内置二进制执行Yarn命令即可,示例:
node .yarn/releases/yarn-3.6.4.cjs install(将文件名替换为你仓库内实际的Yarn二进制文件名) - 你也可以在
package.json的scripts中增加配置简化调用:
{ "scripts": { "yarn": "node .yarn/releases/yarn-3.6.4.cjs" } }
之后就可以用npm run yarn install、npm run yarn build等命令执行对应操作。
方案二:通过Corepack直接安装指定版本Yarn
如果你不想将Yarn二进制提交到代码库,可以用Node自带的Corepack工具直接安装高版本Yarn,不需要先装Yarn 1.x再升级:
- 首先安装>=14.19.0或>=16.9.0版本的Node.js(该范围内的Node版本默认自带Corepack)
- 执行命令开启Corepack并安装指定版本Yarn:
corepack enable corepack prepare yarn@3.6.4 --activate # 将版本号替换为你需要的Yarn版本
- 之后就可以直接正常使用
yarn install等所有Yarn命令。
内容的提问来源于stack exchange,提问作者rakitin
相关产品推荐
相关产品推荐

