1

根据文档,Netlify 通过Essential Build Plugin支持 next.js 并通过CLI 命令支持手动部署,但是我如何将两者结合使用在我自己的 CI 中构建 next.js 项目并仅将构建输出部署到 Netlify ?

插件页面提到了“链接”,即它假设项目是通过 Git 存储库连接并由 netlify 构建的,而不是由我自己的 CI 在本地构建的。

4

2 回答 2

1

OK,终于搞定了。将其包装起来以防其他人发现它有用:

  • 安装软件包netlify-cli@netlify/plugin-nextjs
  • 如插件 README 的本netlify.toml节中所述,在项目根目录中创建(确保有路径和;是服务器端渲染和 API 处理程序所必需的;这两个目录都将用于构建期间的构建输出)publishfunctionsfunctions
  • 如果使用 Git,请添加路径和.netlify(另一个“临时”目录)以.gitignore从您的存储库中排除构建输出
  • 重要在以前/过时的 next-on-netlify 项目的文档中找到信息,没有这个就无法部署):添加target: "experimental-serverless-trace"next.config.js
  • 初始设置:netlify login到您的帐户,运行netlify deploy --build一次,选择一个站点名称
  • 如果您想在 CI 中运行部署,请配置环境变量NETLIFY_AUTH_TOKEN(使用 Netlify UI 中的“个人访问令牌”)和NETLIFY_SITE_ID(在选择名称并成功完成第一次成功部署后显示在 Netlify UI 中)以绕过登录和未来选址
于 2021-04-26T22:41:04.597 回答
1

安装netlify-cli@netlify/plugin-nextjs

yarn add -D @netlify/plugin-nextjs
yarn add -D @netlify/plugin-nextjs

设置netlify.toml文件

[[plugins]]
package = "@netlify/plugin-nextjs"

[build]
command = "yarn next build"
publish = ".next"

配置NETLIFY_AUTH_TOKENNETLIFY_SITE_ID环境变量

在个人访问令牌的 Netlify 用户设置中手动生成访问令牌。这也可以通过命令行来完成。将令牌保存为NETLIFY_AUTH_TOKEN终端设置或持续集成 (CI) 工具的 UI 中的环境变量。

站点 ID 可在 Netlify UI 中找到:转到站点设置 > 常规 > 站点详细信息 > 站点信息,然后复制API ID的值,将 ID 分配给NETLIFY_SITE_ID环境变量。这也可以通过netlify link命令来完成。


构建 Next.js 应用程序并将其部署到 Netlify

netlify deploy --build --prod


文档

更长的文章

https://paulonteri.com/thoughts/deploy-nextjs-to-netlify-manually

于 2022-01-15T17:48:05.693 回答