尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Nitro 部署指南:在 Zeabur 上零配置部署应用(zeabur 预设解析)
Nitro 部署指南在 Zeabur 上零配置部署应用zeabur 预设解析【免费下载链接】nitroNext Generation Server Toolkit. Create web servers with everything you need and deploy them wherever you prefer.项目地址: https://gitcode.com/GitHub_Trending/ni/nitro本指南以 Nitro 内置的zeabur预设为核心讲解如何将 Nitro 应用一键部署到 Zeabur 平台既包括通过 Git 集成实现的零配置部署流程也深入源码剖析该预设生成的.zeabur/output目录结构、路由配置与 ISR 支持帮助你理解部署产物在 Zeabur Serverless 环境中如何被识别与运行。阅读完本指南你将掌握在 Zeabur 上以最少的配置完成 Nitro 应用上线理解zeabur与zeabur-static两个预设的区别并能在需要时手动指定预设、为特定路由开启 ISR 增量渲染。预设概览zeaburNitro 为 Zeabur 提供了内置部署预设预设名称为zeabur。它是 Nitro 官方支持的众多零配置提供商Zero-Config Providers之一见 部署总览。与所有 Nitro 预设一样zeabur预设的作用是从同一份应用代码生成符合 Zeabur 平台期望的输出格式让你无需为特定托管商编写任何胶水代码。Nitro 默认的生产输出预设是 Node.js server而指定zeabur后构建产物会按 Zeabur 的 Serverless 输出格式组织。从源码看Zeabur 预设定义于 src/presets/zeabur/preset.ts并被自动聚合进 src/presets/_all.gen.ts 的预设清单src/presets/_all.gen.ts#L29、#L60。在 src/presets/_types.gen.ts 的类型定义中你可以看到它同时注册了zeabur与zeabur-static两个预设名。零配置让 Zeabur 自动识别 Nitro零配置Zero-Config是 Nitro 针对 CI/CD 部署场景设计的特性构建时 Nitro 会检测当前所在的提供商环境并自动选择对应的预设无需手动声明。在 部署总览 中Zeabur 与 AWS Amplify、Azure、Cloudflare、Firebase App Hosting、Netlify、Stormkit、Vercel 一同被列为可自动检测的提供商。其底层机制位于 src/config/loader.ts当未显式指定预设时Nitro 会以空名称调用 src/presets/_resolve.ts 中的resolvePreset进行自动检测——该函数借助std-env提供的运行环境信息provider与runtime将检测结果映射到对应预设src/presets/_resolve.ts#L5、#L29、#L97-L98。也就是说只要构建发生在 Zeabur 的环境中zeabur预设就会被自动选中。注意对于 Turborepo 用户其 Strict Environment Mode 可能干扰零配置检测。如果遇到检测失败需要显式放行检测变量或改用 Loose Environment Mode--env-modeloose标志。这是 部署总览 中明确提示的已知限制。使用 Git 部署到 Zeabur这是 Zeabur 平台推荐的标准部署方式全程无需修改任何配置。官方文档给出的流程如下推送代码到 Git 仓库目前 Zeabur 仅支持从 GitHub 导入项目。导入项目在 Zeabur 控制台中将你的仓库导入为一个新项目。自动检测与配置Zeabur 会检测到你正在使用 Nitro并自动启用正确的部署设置即应用zeabur预设的构建与运行方式。完成部署应用即被部署上线后续每次推送代码都会触发重新构建。这一流程之所以零配置正是得益于上一节所述的自动检测机制——Zeabur 平台侧与 Nitro 构建侧双向配合无需在仓库中维护平台专属的部署配置。手动指定 zeabur 预设如果你的构建环境无法被自动检测或者你希望显式固定预设可以通过以下三种方式之一手动指定方式一环境变量推荐用于 CI/CDNITRO_PRESETzeabur nitro build方式二命令行参数nitro build --preset zeabur方式三修改 Nitro 配置文件import { defineConfig } from nitro; export default defineConfig({ preset: zeabur, });手动指定时resolvePreset会按预设注册名zeabur精确匹配而不是走自动检测分支见 src/presets/_resolve.ts。构建产物剖析.zeabur/output目录结构理解zeabur预设的构建产物有助于排查部署问题。从 src/presets/zeabur/preset.ts 可以看到该预设将输出组织为 Zeabur Serverless 输出格式源码注释引用了 Zeabur 官方的 Serverless Output Format 规范output: { dir: {{ rootDir }}/.zeabur/output, serverDir: {{ output.dir }}/functions/__nitro.func, publicDir: {{ output.dir }}/static, }构建后生成的关键目录.zeabur/output/functions/__nitro.func唯一的 Serverless 函数目录承载完整的 Nitro 应用服务端逻辑。__nitro是默认函数名。.zeabur/output/static静态资源目录存放public目录中的静态文件由 Zeabur 的静态文件服务直接托管。.zeabur/output/config.jsonZeabur 平台读取的路由配置文件。在compiled钩子中src/presets/zeabur/preset.ts#L17-L24预设会向输出目录写入config.json{ containerized: false, routes: [{ src: .*, dest: /__nitro }] }其含义为该应用不以容器方式运行containerized: false所有请求src: .*都路由到__nitro函数处理。这就是 Zeabur 平台识别 Nitro 应用入口的依据。运行时入口Node Handler 包装zeabur预设的运行时入口位于 src/presets/zeabur/runtime/zeabur.ts内容非常精简import #nitro/virtual/polyfills; import { toNodeHandler } from srvx/node; import { useNitroApp } from nitro/app; export default toNodeHandler(useNitroApp().fetch);从源码结构可以推断其运行模型首先导入#nitro/virtual/polyfills确保运行时环境具备 Nitro 所需的内置 polyfilluseNitroApp().fetch取到 Nitro 应用的核心 fetch 处理器——Nitro 应用本质上是标准的Request Response处理函数通过srvx的toNodeHandler将其转换为 Node.js 风格的请求处理器作为__nitro.func函数的默认导出。也就是说zeabur预设运行在 Node.js 运行时之上最终导出的是一个 Node Handler这与 Zeabur Serverless 函数对 Node 入口的期望一致。为特定路由启用 ISRzeabur预设还内置了对**增量静态再生成ISR**的支持这一点通过 Nitro 的路由规则routeRules声明而非平台侧手工配置。在预设的compiled钩子中src/presets/zeabur/preset.tsNitro 会遍历nitro.options.routeRules为每个声明了isr的路由生成对应的 Zeabur 函数与预渲染配置为路由key创建符号链接key.func指向functions/__nitro.func同时写入key.prerender-config.json内容为{ type: Prerender }。在nitro.config.ts中声明 ISR 路由规则的示例import { defineConfig } from nitro; export default defineConfig({ routeRules: { /blog/**: { isr: true }, }, });构建后/blog/**会生成独立的key.func与预渲染配置文件让 Zeabur 以 ISR 方式增量渲染该路由从而兼顾动态数据与缓存性能。静态部署变体zeabur-static除了服务端预设Nitro 还提供了zeabur-static预设用于纯静态站点的部署src/presets/zeabur/preset.ts#L52-L68const zeaburStatic defineNitroPreset( { extends: static, output: { dir: {{ rootDir }}/.zeabur/output, publicDir: {{ output.dir }}/static, }, commands: { preview: npx serve ./static, }, }, { name: zeabur-static as const, static: true, } );它继承自 Nitro 的static预设在构建时将应用预渲染为静态文件仅输出static目录且本地预览命令为npx serve ./static。对于内容完全静态、无需服务端逻辑的应用如文档站、落地页选用该预设更轻量。值得注意的是resolvePreset在自动检测时会对静态与动态预设做区分匹配src/presets/_resolve.ts#L72-L73确保静态构建场景下选中zeabur-static而非zeabur。小结项目说明预设名zeabur/zeabur-static部署方式Git 集成零配置自动检测或手动指定预设输出目录{{ rootDir }}/.zeabur/output服务端函数.zeabur/output/functions/__nitro.func静态资源.zeabur/output/static路由配置.zeabur/output/config.json全部请求路由到__nitro运行时Node.jssrvx的toNodeHandler包装 fetch 处理器高级特性通过routeRules的isr字段启用路由级 ISR源码位置src/presets/zeabur/preset.ts、src/presets/zeabur/runtime/zeabur.ts在 Zeabur 上部署 Nitro 应用的核心体验是零配置把代码推上 GitHub、导入 Zeabur剩下的事情由平台与 Nitro 预设共同完成。若需要更精细的控制你随时可以通过NITRO_PRESET环境变量、--preset参数或nitro.config.ts显式指定预设并利用 ISR 路由规则优化动态页面的交付性能。【免费下载链接】nitroNext Generation Server Toolkit. Create web servers with everything you need and deploy them wherever you prefer.项目地址: https://gitcode.com/GitHub_Trending/ni/nitro创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

AI Passport:端侧AI+链式签名的可信数字身份凭证

AI Passport:端侧AI+链式签名的可信数字身份凭证

1. 这不是P图工具,而是身份凭证的底层重构最近朋友圈和数码社群里突然刷屏的“Folotoy AI Passport”,很多人第一反应是——又一个AI换脸App?点开下载页看到“护照”俩字还愣了一下:这玩意儿能出国用吗?我第一时间没急…

📅 2026/9/15 21:51:17
ENVI+SARscape实战:哨兵一号Sentinel-1数据InSAR处理全流程与避坑指南

ENVI+SARscape实战:哨兵一号Sentinel-1数据InSAR处理全流程与避坑指南

做哨兵一号数据处理的这几个月,我最大的感受是:数据好拿,处理却坑不少。尤其是用ENVI主打的SARscape插件,每一步都像在试错,但一旦流程通了,后面的结果会非常稳定。这篇文章不打算写成教科书,我…

📅 2026/9/15 21:51:17
为 Gemini Spark 接入 Hindsight 长期记忆:MCP 集成架构、OAuth 代理与配置实战

为 Gemini Spark 接入 Hindsight 长期记忆:MCP 集成架构、OAuth 代理与配置实战

为 Gemini Spark 接入 Hindsight 长期记忆:MCP 集成架构、OAuth 代理与配置实战 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight 本文以 Hindsight 仓库中的 gemini-s…

📅 2026/9/15 21:51:17
MORE NEWS

更多资讯

📰

Unity资源管理健康度诊断:从包体膨胀到内存泄漏的四维治理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Cassandra 条件与谓词缺陷类别深度解析:38 个比较、守卫与谓词 Bug 模式及源码对照

Cassandra 条件与谓词缺陷类别深度解析:38 个比较、守卫与谓词 Bug 模式及源码对照 【免费下载链接】cassandra Open source transactional distributed database. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure w…

📰

网站风格一般具有哪三大特征对比评测

网站风格三大特征拆解:避开流量陷阱的完整流程 网站做好了没人访问,这不仅是玄学,更是风格错位。很多项目经理在验收时只看“好不好看”,却忽略了风格背后的技术实现逻辑。今天咱们不聊虚的,直接拆解【网站风格一般具有哪三大特征】在技术选型中的落地难…

📰

PyTorch DataLoader num_workers性能调优实战指南

1. 为什么改一个num_workers数值,训练速度有时快3倍,有时反而卡死?刚入行那会儿,我调参全靠玄学——看到别人说“num_workers4效果好”,我就照抄;结果在自己那台老式双核笔记本上跑起来,GPU利用…

📰

TanStack Start 的 no-async-client-component 规则:基于渲染图的异步组件客户端上下文静态检测

TanStack Start 的 no-async-client-component 规则:基于渲染图的异步组件客户端上下文静态检测 【免费下载链接】router 🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more). 项目地…

📰

Bitwarden 客户端类型 ClientType 枚举解析:从库定义到各端注入与底层用途

Bitwarden 客户端类型 ClientType 枚举解析:从库定义到各端注入与底层用途 【免费下载链接】clients Bitwarden client apps (web, browser extension, desktop, and cli). 项目地址: https://gitcode.com/GitHub_Trending/cl/clients 本篇文章聚焦 Bitwarde…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬