运行yarn install --check-files报不支持选项错误求助
问题根因
报错核心是Yarn大版本不匹配:当前项目目录下实际运行的是Yarn 2+(Berry版本),但你执行的--check-files参数、yarn upgrade子命令都是Yarn 1.x(Classic经典版)的语法,两个版本的命令体系完全不兼容:
--check-files是Yarn 1.x install命令的专属参数,Yarn 2+版本已正式移除该参数,因此触发「不支持的选项」报错yarn upgrade是Yarn 1.x的依赖升级命令,Yarn 2+中对应功能的命令为yarn up,因此触发「找不到upgrade脚本」报错
你用Volta管理版本时会自动读取项目内的工具版本配置,之前其他仓库运行正常,是因为那些仓库没有指定Yarn 2+版本,默认调用了你本地的Yarn 1.x环境,当前克隆的Rails仓库要么自带Yarn Berry的版本配置文件,要么你本地全局默认版本切到了Yarn 2+。
解决方法
根据你用的Rails版本选对应方案即可:
方案1:适配老版本Rails(Rails 6、带Webpacker的早期Rails 7)
这类Rails版本的内置脚本默认只兼容Yarn 1.x,直接给项目固定Yarn经典版即可:
- 先在项目根目录执行命令确认版本,返回2.x/3.x/4.x开头的版本号即可确认是版本串了:
yarn -v - 用Volta给当前项目固定Yarn 1.x最终稳定版,执行后Volta进入该目录会自动切换到对应版本,不会影响其他项目:
volta pin yarn@1.22.22 - 清理Yarn 2+生成的冗余文件后重新安装依赖:
rm -rf node_modules .yarn .yarnrc.yml yarn.lock yarn install --check-files
执行完命令就能正常跑通,后续Rails内置的yarn相关脚本也不会再报参数错误。
方案2:适配新版本Rails(已原生支持Yarn Berry的版本)
如果你的Rails版本已经适配Yarn 2+,不需要降级Yarn,直接调整命令即可:
- 去掉install命令后面的
--check-files参数,Yarn Berry默认安装时就会做文件完整性校验,不需要额外加该参数 - 依赖升级时用
yarn up命令替代旧的yarn upgrade即可
内容的提问来源于stack exchange,提问作者jwsandeman
相关产品推荐
相关产品推荐

