概述
了解更多关于 Nitro 部署提供者的信息。
Nitro 可以从相同的代码库生成适合不同托管提供者的不同输出格式。通过使用内置的预设,您可以轻松配置 Nitro 以几乎不需要额外代码或配置地调整其输出格式!
默认输出
默认的生产输出预设是 Node.js server。
在开发模式下运行 Nitro 时,Nitro 总是会使用名为 nitro-dev
的特殊预设,该预设使用 Node.js 以 ESM 的形式在隔离的 Worker 环境中运行,尽可能接近生产环境的行为。
零配置提供者
在使用 CI/CD 部署生产环境时,Nitro 会尝试自动检测提供者环境并相应地设置正确的配置,无需任何额外配置。目前,以下提供者可以通过零配置自动检测。
对于 Turborepo 用户,零配置检测将受到其严格环境模式的干扰。您可能需要显式地允许变量,或使用其宽松环境模式(使用
--env-mode=loose
标志)。更改部署预设
如果您需要针对特定提供者构建 Nitro,您可以通过定义名为 NITRO_PRESET
或 SERVER_PRESET
的环境变量,或者通过更新您的 Nitro 配置,或使用 --preset
参数来指定目标。
建议在依赖于 CI/CD 的部署中使用环境变量的方法。
示例: 定义 NITRO_PRESET
环境变量
nitro build --preset cloudflare_pages
示例: 更新 nitro.config.ts
文件
export default defineNitroConfig({
preset: 'cloudflare_pages'
})
兼容性日期
部署提供者定期更新他们的运行时行为。Nitro 预设会更新以支持这些新功能。
为了防止破坏现有部署,Nitro 使用兼容性日期。该日期允许您在项目创建时锁定行为。您还可以选择在准备好时选择未来的更新。
当您创建一个新项目时,compatibilityDate
被设置为当前日期。此设置会保存在您的项目配置中。
您应该定期更新兼容性日期。更新后,请始终彻底测试您的部署。以下是关键日期及其影响的列表。
Compatibility date | Platform | Description |
---|---|---|
≥ 2024-05-07 | netlify | Netlify functions v2 |
≥ 2024-09-19 | cloudflare | Static assets support for cloudflare-module preset |
≥ 2025-01-30 | deno | Deno v2 Node.js compatibility |