You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudflare部署React项目遇YN0028锁文件修改禁止错误求助

解决Cloudflare部署React项目时Yarn锁文件修改报错(YN0028)

错误原因

报错YN0028: The lockfile would have been modified by this install, which is explicitly forbidden是因为Cloudflare Pages构建环境默认启用了Yarn的不可变安装模式(--immutable),该模式要求yarn.lock必须与package.json完全匹配,不允许安装过程中修改锁文件。你之前删除锁文件重新安装后,可能本地生成的锁文件与Cloudflare环境安装预期仍有差异,或是提交的锁文件本身就和package.json不一致。

解决方案

1. 本地重新生成并提交正确的yarn.lock

这是核心修复步骤,确保锁文件和依赖声明完全匹配:

  • 删除本地旧依赖文件和锁文件:
    rm -rf node_modules yarn.lock
    
  • 重新安装依赖并生成新锁文件:
    yarn install
    
  • 安装完成后检查控制台,若有版本冲突或警告,按照提示修复依赖版本(比如固定冲突依赖的版本号)。
  • 将新生成的yarn.lock提交到Git仓库:
    git add yarn.lock
    git commit -m "Fix: Update yarn.lock to match package.json"
    git push
    

2. 本地验证构建是否正常

重新提交后,先在本地执行构建命令,确认能正常完成:

yarn build

本地构建成功后,再触发Cloudflare的重新部署。

3. 调整Cloudflare Pages构建设置(可选)

若上述步骤未解决问题,可尝试关闭Cloudflare的不可变安装模式:

  • 进入你的Cloudflare Pages项目 → 设置 → 构建与部署
  • 在环境变量中添加新变量:
    • 名称:YARN_ENABLE_IMMUTABLE_INSTALLS
    • 值:false
  • 保存后重新触发部署

额外提示

  • 尽量避免在package.json中使用模糊版本(如^1.0.0或~1.0.0),固定依赖版本号能减少锁文件不匹配的概率。
  • 每次修改package.json中的依赖后,都要重新执行yarn install并提交更新后的yarn.lock。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:07:13