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

项目中如何使用自行Fork的Next.js版本?

自定义Next.js版本的可行解决方案

以下3种方案可以解决你遇到的问题,可根据自身修改需求选择:

方案1:直接依赖Git仓库(无需发布npm)

Next.js官方仓库为monorepo结构,你可以直接将依赖指向自己fork的仓库地址,跳过npm发布流程:

  • 先将fork后的Next.js仓库克隆到本地,切换到你修改完成的分支,执行pnpm install && pnpm build完成全量构建
  • 在你的项目package.json中,将next依赖替换为你的仓库地址,格式为:
    "next": "git+https://github.com/你的用户名/next.js.git#你的修改分支名"
    
  • 如果用到其他@next/开头的子包,可以通过包管理器的版本覆盖配置统一锁定:pnpm用overrides、npm用overrides、yarn用resolutions,配置后所有子包都会从你指定的fork仓库拉取
  • 该方案在Vercel部署时会直接拉取你指定的仓库代码,不会被官方版本覆盖

方案2:pnpm 原生补丁(替代patch-package,适配Vercel环境)

如果你修改的代码量不大,不需要维护独立fork分支,pnpm自带的补丁功能比patch-package兼容性更强,不会被Vercel覆盖:

  • 先安装对应版本的官方Next.js包到项目
  • 执行pnpm patch next@<你使用的版本号>,命令会输出一个临时目录路径,直接在该目录下修改你要调整的Next.js源码
  • 修改完成后执行pnpm patch-commit <上一步输出的临时目录路径>,工具会自动在项目根目录生成patches文件夹存储补丁,同时更新pnpm-lock.yaml绑定补丁规则
  • 将patches文件夹和pnpm-lock.yaml提交到代码仓库,Vercel部署时会自动应用补丁,无需额外配置

方案3:子模块+Workspace (适合高频修改源码的场景)

如果你需要频繁调整Next.js源码、边改边调试,可以用工作区关联本地fork仓库:

  • 将你fork的Next.js仓库作为git子模块添加到项目的./packages/nextjs目录
  • 在包管理器的workspace配置中加入Next.js的monorepo目录,你的项目直接依赖工作区内的next包即可
  • 部署时Vercel会自动识别workspace依赖,使用本地修改的版本,不会拉取官方包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:02