SuperAPI AI 工具集

netlify-deploy

部署与运维

查看项目

更新于 10-15 13:10

技能介绍

Netlify Deployment Skill 用于通过 Netlify CLI 将 Web 项目部署到 Netlify,并智能检测项目配置与部署上下文。

用途 当用户要求部署、托管、发布站点,或在 Netlify 上关联某个站点或仓库时使用该技能。

主要能力

检查 Netlify CLI 的认证状态(npx netlify status)。 检测项目配置与所用框架。 关联已有站点,或在站点不存在时创建新站点。 部署到生产环境或预览环境。

前置条件

Netlify CLI:通过 npx 使用,无需全局安装。 认证:已登录的 Netlify 账号会话。 项目:当前目录下存在有效的 Web 项目。

当沙箱阻止部署所需的网络请求时,需以 sandbox_permissions=require_escalated 重新运行。部署可能耗时数分钟,应使用合适的超时时间。

认证方式

该技能使用预认证的 Netlify CLI 方式:

用 npx netlify status 检查认证状态; 如未认证,引导用户执行 npx netlify login; 若无法建立认证,则优雅失败。 认证可任选其一:

浏览器 OAuth(主要方式):netlify login 打开浏览器完成认证; API Key(备选方式):设置 NETLIFY_AUTH_TOKEN 环境变量。

工作流程

  1. 验证 Netlify CLI 认证 执行 npx netlify status。已认证时会显示登录用户邮箱和站点关联状态;未认证时会提示“Not logged into any site”或认证错误。如未认证,引导用户执行 npx netlify login,该命令会打开浏览器完成 OAuth 认证,等待用户完成登录后再次用 netlify status 验证。备选方案是 API Key 认证,可执行 export NETLIFY_AUTH_TOKEN=your_token_here,令牌可在 https://app.netlify.com/user/applications#personal-access-tokens 生成。

  2. 检测站点关联状态 根据 netlify status 输出判断:已关联(显示站点名称/URL)或未关联(需要关联或创建站点)。

  3. 关联已有站点或创建新站点 如已关联则跳到第 4 步。如未关联,先尝试按 Git 远程关联:用 git remote show origin 检查是否为 Git 项目,提取远程 URL(形如 https://github.com/username/repo 或 git@github.com:username/repo.git),执行 npx netlify link --git-remote-url <REMOTE_URL>。若关联失败(站点在 Netlify 上不存在),则执行 npx netlify init 交互式创建新站点,引导用户选择团队/账号、设置站点名称、配置构建设置,并在需要时创建 netlify.toml。

  4. 验证依赖 部署前确保项目依赖已安装,例如 npm 项目执行 npm install;其他包管理器(yarn、pnpm 等)需检测并使用对应命令。

  5. 部署到 Netlify 根据上下文选择部署类型:

预览/草稿部署(已有站点的默认方式):npx netlify deploy,生成唯一 URL 的部署预览用于测试。 生产部署(新站点或明确要求生产部署时):npx netlify deploy --prod,发布到线上生产 URL。

部署过程:CLI 检测构建设置(来自 netlify.toml 或提示用户),在本地构建项目,上传构建产物到 Netlify,返回部署 URL。

  1. 报告结果 部署完成后向用户报告:本次部署的唯一 URL、站点 URL(若为生产部署)、部署日志(Netlify 仪表盘链接),并建议后续可执行 netlify open 查看站点或仪表盘。

关于 netlify.toml 若存在 netlify.toml,CLI 会自动使用。若不存在,CLI 会提示填写:构建命令(如 npm run build、next build)和发布目录(如 dist、build、.next)。常见框架默认值:Next.js 使用构建命令 npm run build、发布目录 .next;React(Vite)使用构建命令 npm run build、发布目录 dist;静态 HTML 无构建命令,发布当前目录。该技能应尽可能从 package.json 检测框架并建议合适设置。

示例完整流程

npx netlify status npx netlify login

git remote show origin npx netlify link --git-remote-url https://github.com/user/repo npx netlify init

npm install

npx netlify deploy

npx netlify deploy --prod

错误处理

“Not logged in”:运行 npx netlify login。 “No site linked”:运行 npx netlify link 或 npx netlify init。 “Build failed”:检查 netlify.toml 或 CLI 提示中的构建命令与发布目录,确认依赖已安装,查看构建日志中的具体错误。 “Publish directory not found”:确认构建命令已成功执行,检查发布目录路径是否正确。

故障排查

提权网络访问:如果部署因网络问题(超时、DNS 错误、连接重置)失败,请以提权权限重跑部署命令(sandbox_permissions=require_escalated)。当沙箱网络阻止出站请求时,部署需要提权网络访问。可提示用户:“部署需要提权网络访问才能发布到 Netlify。我可以以提权权限重跑该命令,是否继续?”

环境变量:密钥与配置方面,切勿将密钥提交到 Git;在 Netlify 仪表盘的 Site Settings → Environment Variables 中设置;构建时通过 process.env.VARIABLE_NAME 访问。

提示

先用 netlify deploy(不带 --prod)测试,再部署到生产。 运行 netlify open 在 Netlify 仪表盘查看站点。 运行 netlify logs 查看函数日志(若使用 Netlify Functions)。 使用 netlify dev 配合 Netlify Functions 进行本地开发。

参考

Netlify CLI 文档:https://docs.netlify.com/cli/get-started/ netlify.toml 参考:https://docs.netlify.com/configure-builds/file-based-configuration/

随附参考(按需加载)

CLI 命令、部署模式、netlify.toml 指南。

限制 该技能的收费情况暂未提供;可用平台与具体部署环境取决于 Netlify 账号与本地项目情况,未提供更多信息。