Yarn 2/3用resolutions配置本地link包导致预发环境构建失败如何解决
Yarn 3本地link生成portal resolutions影响线上构建的解决方案
- 方案1:修改构建命令忽略resolutions配置
预发/生产环境的CI构建流程中,将安装依赖的命令替换为yarn install --no-resolutions,该参数会让Yarn完全忽略package.json中的resolutions字段,直接使用依赖声明中写定的3.4版本,无需修改本地开发的任何配置,改造成本最低。 - 方案2:本地link时禁止写入package.json
本地执行link操作时添加--no-save参数,命令为yarn link @my-package/name --no-save,此时Yarn不会自动在package.json新增resolutions配置,本地link规则仅临时生效,不会提交到代码仓库。 - 方案3:本地专属配置不提交到仓库
不在package.json中配置resolutions,而是在项目根目录的.yarnrc.yml文件中添加本地依赖关联规则:
再将packageExtensions: "*": dependenciesMeta: "@my-package/name": link: ../name.yarnrc.yml添加到.gitignore规则中,该配置仅在本地开发环境生效,不会影响线上环境。 - 方案4:使用Monorepo工作区模式
若@my-package/name和「项目1」长期协同迭代,可将两个项目归入同一个Yarn Workspace管理,Yarn会自动处理本地依赖的关联逻辑,无需手动执行link操作,也不会生成额外的resolutions配置。
内容的提问来源于stack exchange,提问作者retrovertigo
相关产品推荐
相关产品推荐

