用 netlify-deploy Skill 把前端项目一键发布到 Netlify

前言

前端项目写完之后,往往还要经历一遍熟悉又琐碎的上线流程:登录托管平台、关联站点、确认构建命令和发布目录、先打预览再推生产。命令本身不复杂,但步骤多、容易漏,尤其在用 AI 编程助手帮你改代码时,助手如果对 Netlify CLI 的约定不熟,就容易卡在鉴权、站点未关联,或把预览部署和正式发布搞混。

netlify-deploy 正是为这类场景准备的 Agent Skill。它把「检查登录 → 关联或新建站点 → 安装依赖 → 预览/生产部署」固化成可复用的流程说明,让支持 Agent Skills 标准的工具(如 Cursor、Codex、Claude Code)在你提到部署、托管、发布到 Netlify 时,按同一套步骤执行,而不是临时拼命令。

这是什么

netlify-deploy 是 OpenAI 在 openai/skills 仓库 skills/.curated/ 目录下收录的一份 curated Skill,官方路径为:

https://github.com/openai/skills/tree/main/skills/.curated/netlify-deploy

它的定位很明确:通过 Netlify CLI(文档与示例统一使用 npx netlify,不必先全局安装)完成 Web 项目的部署、托管与发布,覆盖预览部署和生产部署。触发场景包括用户说「部署到 Netlify」「发布站点」「关联现有站点」等。

需要说明的是:该仓库 README 已提示整体 deprecated,后续 Codex 相关示例更推荐参考 openai/plugins;但截至本文写作时,netlify-deploySKILL.md 与配套 references/ 仍可从上述 curated 路径获取。Skill 基于通用的 SKILL.md 格式(可参见 Agent Skills 开放标准),因此同一份技能包可以放到不同 AI 编程工具对应的 skills 目录中使用。

核心功能与亮点

根据官方 SKILL.md,这个 Skill 主要自动化以下几件事:

  1. 校验 Netlify CLI 登录状态
    先跑 npx netlify status。未登录则引导执行 npx netlify login(浏览器 OAuth);也可以改用环境变量 NETLIFY_AUTH_TOKEN(在 Netlify 用户设置里生成 Personal Access Token)。

  2. 识别项目是否已关联站点
    status 输出判断当前目录是否已 link 到某个 Netlify site。已关联则直接进入部署;未关联则尝试按 Git remote 链接,或走新建流程。

  3. 关联已有站点或创建新站点
    - 有 Git remote 时:npx netlify link --git-remote-url <REMOTE_URL>
    - 链接失败或不存在站点:npx netlify init(选团队、站点名、构建配置,必要时生成 netlify.toml

  4. 部署前检查依赖
    对 npm 项目执行 npm install;若检测到 yarn / pnpm 等,则使用对应安装命令。

  5. 区分预览与生产
    - 已有站点、默认测试:npx netlify deploy(Draft/Preview,得到独立预览 URL)
    - 新站点或明确要上线:npx netlify deploy --prod
    CLI 会读取 netlify.toml,或交互询问 build command / publish directory;Skill 也会尽量根据 package.json 推断框架默认值。

  6. 结果回报与排错指引
    部署结束后应向用户回报 Deploy URL、生产站点 URL(若走了 --prod)、控制台日志入口,并可提示 netlify open。常见错误(未登录、未关联站点、构建失败、发布目录不存在)在 Skill 里都有对应处理建议。

Skill 目录里还附带按需加载的参考文档:references/cli-commands.mdreferences/deployment-patterns.mdreferences/netlify-toml.md,用来补充命令速查、场景决策树和配置说明,避免把所有细节塞进主 SKILL.md

安装与启用

获取 Skill 文件

从官方目录获取 netlify-deploy 文件夹(至少包含 SKILL.md,建议一并保留 references/):

# 克隆仓库后拷贝 curated 技能目录(任选一种获取方式)
git clone https://github.com/openai/skills.git
cp -r openai/skills/skills/.curated/netlify-deploy <你的-skills-目录>/netlify-deploy

Codex 中,也可按 openai/skills 文档使用内置安装器安装 curated 技能(安装后如未识别,需重启 Codex):

$skill-installer netlify-deploy

放到各工具的 skills 目录

Agent Skills 是「一个目录 + 一份 SKILL.md」。不同工具扫描路径不同,可按官方文档放置(项目级或用户级均可):

工具 常见项目级路径 常见用户级路径
Cursor .cursor/skills/netlify-deploy/.agents/skills/netlify-deploy/ ~/.cursor/skills/~/.agents/skills/
Claude Code .claude/skills/netlify-deploy/ ~/.claude/skills/netlify-deploy/
Codex .agents/skills/netlify-deploy/ ~/.agents/skills/

目录结构示意:

netlify-deploy/
├── SKILL.md
└── references/
    ├── cli-commands.md
    ├── deployment-patterns.md
    └── netlify-toml.md

Cursor 文档还说明:为兼容性会额外加载 .claude/skills/.codex/skills/ 等路径。跨工具协作时,优先使用 .agents/skills/ 往往更省事。

运行时前置条件

Skill 本身不替代 Netlify 账号与网络权限,使用前需满足:

  • 本机可执行 Node.js 环境,以便 npx netlify ...(Netlify 官方 CLI 文档要求 Node.js 18.14.0 或更高;Skill 侧通过 npx 调用,不强制全局 npm install -g netlify-cli
  • 已登录 Netlify,或已设置 NETLIFY_AUTH_TOKEN
  • 当前目录是有效的 Web 项目
  • 若沙箱拦截了出站网络,Skill 提示需用更高权限重试(文档中的 sandbox_permissions=require_escalated);部署可能需要数分钟,注意超时设置

典型用法示例

下面流程来自官方 SKILL.md 的完整示例,可在本地或让 Agent 按步骤执行。

1. 鉴权

npx netlify status

# 若未登录:
npx netlify login

# 无浏览器环境时,可用 Token:
export NETLIFY_AUTH_TOKEN=your_token_here

Token 可在 https://app.netlify.com/user/applications#personal-access-tokens 生成。这与 Netlify 官方 CLI 文档中的鉴权方式一致。

2. 关联或初始化站点

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

# 若站点尚不存在:
npx netlify init

3. 安装依赖并部署

npm install

# 先预览(Draft Deploy)
npx netlify deploy

# 确认无误后再上生产
npx netlify deploy --prod

4. 构建配置(netlify.toml)

若仓库根目录已有 netlify.toml,CLI 会自动使用。没有时,CLI 会询问构建命令与发布目录。Skill 给出的常见默认值示例包括:

  • Next.js:npm run build,发布目录 .next
  • React(Vite):npm run build,发布目录 dist
  • 纯静态 HTML:无需构建命令,发布当前目录

实际项目仍以本地构建产物目录为准。例如 Vite 也可显式指定目录:

npx netlify deploy --dir=dist --prod

部署模式选择上,Skill 的 decision tree 建议:新站点或首次上线倾向 --prod;已有站点改代码时先 deploy 预览,再 --prod

5. 对 Agent 可以说的话

启用 Skill 后,不必背命令,直接描述意图即可,例如:

  • 「把当前 Vite 项目部署到 Netlify,先出预览链接」
  • 「用 Git remote 关联已有 Netlify 站点并做生产发布」
  • 「这个仓库还没建过站点,帮我 netlify init--prod

Agent 应按 Skill 先查 status、处理登录与 link,再部署,而不是跳过鉴权直接 deploy

适用场景与注意事项

比较适合:

  • 个人或小团队的静态站、Vite/React、简单前端项目,希望「改完就能预览 URL」
  • 用 AI 助手写页面时,把「上线」也交给同一会话闭环处理
  • 需要统一团队部署话术与步骤(预览优先、密钥不进 Git、依赖先装好)

使用时注意:

  1. 先预览再生产:Skill 明确建议多数已有站点先跑无 --proddeploy,确认预览 URL 后再正式发布。
  2. 密钥不要提交仓库:环境变量应放在 Netlify 控制台(Site Settings → Environment Variables)或用 npx netlify env:set,构建里通过 process.env 读取。
  3. 构建失败先本地复现:发布目录不存在、exit code 1 等,优先本地 npm run build 核对输出目录与 netlify.toml
  4. 网络与沙箱:在受限沙箱里部署失败时,按 Skill 提示申请放宽网络权限后再试。
  5. 仓库状态:引用 openai/skills 时留意其 README 的 deprecated 说明;若你所在工具生态已迁移到 plugins 分发,以当前工具文档的安装方式为准,Skill 内容仍以 SKILL.md 为准。
  6. 框架特例:不同框架在 Netlify 上的最佳构建配置可能随平台演进变化;Skill 中的默认值是引导建议,复杂项目(尤其 Next.js 等)应再对照 Netlify 框架文档CLI 入门 核对。

部署完成后,可用 npx netlify open 打开控制台,若使用了 Netlify Functions,可用 npx netlify logs 查看函数日志;本地联调 Functions 可用 npx netlify dev

小结

netlify-deploy 把 Netlify CLI 上线链路写成 Agent 可执行的标准流程:登录校验、站点关联、依赖安装、预览与生产分离,并附带命令与场景参考。对经常把前端 demo 推到 Netlify 的开发者来说,它补上的是「写完即上线」闭环里最容易被助手漏掉的那几步。

官方地址:https://github.com/openai/skills/tree/main/skills/.curated/netlify-deploy

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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜