【问题标题】:Using your own fork of Next.js使用你自己的 Next.js 分支
【发布时间】:2022-01-03 03:34:04
【问题描述】:

您将如何在项目中使用您自己的 Next.js 分支?

我尝试使用patch-package,但下一个包被 Vercel 覆盖 也尝试过发布到 npm,但这非常困难,因为它需要先发布到许多 @next/

你会怎么做?

【问题讨论】:

  • “在项目中”是什么意思?在本地回购?在生产中?如果在生产中,部署在何处以及如何部署(例如,在 Docker 中容器化,在 Vercel 上使用源 git repo 等)?

标签: npm next.js


【解决方案1】:

有些人不喜欢这种技术,但我已经在许多项目中使用它并取得了巨大的成功。

tl;dr - fork git 上的 repo 并直接从 git 安装。使用 GitPkg 与 monorepos 一起工作。

  1. 在 git 上创建你想要的仓库

  2. 克隆你的新分支:git clone https://github.com/<your-user-name>/<package-name>

  3. 进行任何更改并推送这些更改。记下提交哈希。

  4. 使用以下格式安装依赖项:

     npm install <your-user-name>/<package-name>#<commit-ish>
    
    • 重要提示:将&lt;commit-ish&gt; 替换为步骤#3 中的哈希(注意:标签或分支名称也可以使用)。这一步很重要,因为它可以确保您锁定到特定版本。
    • 如果您引用 monorepo,您​​可以使用 GitPkg 为您想要的特定包指定子目录。
  5. 像往常一样继续工作。当您对包进行更改时,您需要推送这些更改并重复步骤 #3-4 以获取项目中的新更改。


保持最新

要更新软件包,您需要合并原作者所做的任何新的“上游”更改,并将其推送到您的分叉存储库。然后重复上面的第 4 步。

  1. 添加原来的“上游”遥控器:

     git add upstream https://github.com/vercel/next.js.git
    
  2. 下拉所有更改并合并它们 - 确保引用正确的分支名称:

     git fetch upstream
     git checkout <main-branch>
     git merge upstream/<main-branch>
    
  3. 解决任何合并冲突,然后推送到您的 fork:git push origin

  4. 重复上面的第 4 步以安装最新更改 - 确保选择新的提交哈希或标签以获取最新更改。

【讨论】:

  • 也试过了,但实际的下一个包在/packages/next下,所以这不起作用当我尝试在自己的仓库中添加packages/next时,也没有用跨度>
  • 我不确定你的意思。我不知道packages/next 是什么,但我使用过这种技术,即使在monorepos 中,它也很有效。
  • 在 npm 上发布的实际 next 包是 github.com/vercel/next.js/tree/canary/packages/next
  • 我用我能找到的最新信息更新了我的答案——你必须使用像 GitPkg 这样的工具。希望它对您有所帮助,尽管我听说过 GitPkg 并经历过不同的结果。
  • 非常感谢您的帮助,但它不适用于 Next.js 存储库我要使用的存储库是 github.com/instatushq/next.js GitPkg 不起作用,它会产生错误,并且无法发布到 npm,因为它需要 @next 依赖项,我无法发布到
猜你喜欢
  • 2020-04-24
  • 2022-12-15
  • 2011-04-12
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多