根据文档,Netlify 通过 Essential Build Plugin 支持 next.js,并通过 CLI 命令 进行手动部署,但是我如何将两者一起使用来在我自己的 CI 中构建 next.js 项目并仅进行部署构建输出到 Netlify?
插件页面提到了“链接”,即它假设该项目是通过 Git 存储库连接并由 netlify 构建的,而不是由我自己的 CI 在本地构建的。
好的,终于成功了。将其包装起来以防其他人发现它有用:
netlify-cli
和 @netlify/plugin-nextjs
netlify.toml
,如插件自述文件的this部分所述(确保具有publish
和functions
的路径;服务器端渲染和API处理程序需要functions
;这两个目录都将用于构建期间的构建输出).netlify
(另一个“临时”目录)添加到 .gitignore
以从存储库中排除构建输出target: "experimental-serverless-trace"
添加到
next.config.js
netlify login
到您的帐户,运行
netlify deploy --build
一次,选择一个站点名称
NETLIFY_AUTH_TOKEN
(使用 Netlify UI 中的“个人访问令牌”)和
NETLIFY_SITE_ID
(选择名称并成功完成第一个任务后显示在 Netlify UI 中)成功部署)以绕过将来的登录和站点选择
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_TOKEN
和
NETLIFY_SITE_ID
环境变量
个人访问令牌的访问令牌。这也可以通过命令行来完成。将令牌保存为终端设置或持续集成 (CI) 工具 UI 中的 NETLIFY_AUTH_TOKEN
环境变量。站点 ID 可在 Netlify UI 中找到:转到站点设置 > 常规 > 站点详细信息 > 站点信息,然后复制
API ID 的值,将该 ID 分配给 NETLIFY_SITE_ID
环境变量。这也可以通过netlify link 命令来完成。
netlify deploy --build --prod
https://paulonteri.com/thoughts/deploy-nextjs-to-netlify-manually
选择 Next.js 的运行时。然后只需清理缓存即可构建。