根据文档,Netlify 通过Essential Build Plugin支持 next.js 并通过CLI 命令支持手动部署,但是我如何将两者结合使用在我自己的 CI 中构建 next.js 项目并仅将构建输出部署到 Netlify ?
插件页面提到了“链接”,即它假设项目是通过 Git 存储库连接并由 netlify 构建的,而不是由我自己的 CI 在本地构建的。
根据文档,Netlify 通过Essential Build Plugin支持 next.js 并通过CLI 命令支持手动部署,但是我如何将两者结合使用在我自己的 CI 中构建 next.js 项目并仅将构建输出部署到 Netlify ?
插件页面提到了“链接”,即它假设项目是通过 Git 存储库连接并由 netlify 构建的,而不是由我自己的 CI 在本地构建的。
OK,终于搞定了。将其包装起来以防其他人发现它有用:
netlify-cli
和@netlify/plugin-nextjs
netlify.toml
节中所述,在项目根目录中创建(确保有路径和;是服务器端渲染和 API 处理程序所必需的;这两个目录都将用于构建期间的构建输出)publish
functions
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
环境变量在个人访问令牌的 Netlify 用户设置中手动生成访问令牌。这也可以通过命令行来完成。将令牌保存为NETLIFY_AUTH_TOKEN
终端设置或持续集成 (CI) 工具的 UI 中的环境变量。
站点 ID 可在 Netlify UI 中找到:转到站点设置 > 常规 > 站点详细信息 > 站点信息,然后复制API ID的值,将 ID 分配给NETLIFY_SITE_ID
环境变量。这也可以通过netlify link命令来完成。
netlify deploy --build --prod
https://paulonteri.com/thoughts/deploy-nextjs-to-netlify-manually