概述
了解有关 Nitro 部署提供商的更多信息。
Nitro 可以从相同的代码库生成适合不同托管提供商的不同输出格式。使用内置预设,您可以轻松配置 Nitro,以几乎无需额外代码或配置的方式调整其输出格式!
默认输出
默认的生产输出预设是 Node.js 服务器。
在开发模式下运行 Nitro 时,Nitro 将始终使用一个名为 nitro-dev 的特殊预设,该预设在隔离的 Worker 环境中使用 Node.js 和 ESM,其行为尽可能接近生产环境。
零配置提供商
当使用 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 会设置为当前日期。此设置保存在您项目的配置中。
您应该定期更新兼容性日期。更新后务必彻底测试您的部署。以下是关键日期及其影响列表。
| 兼容性日期 | 平台 | 描述 |
|---|---|---|
| ≥ 2024-05-07 | netlify | Netlify functions v2 |
| ≥ 2024-09-19 | cloudflare | cloudflare-module 预设的静态资产支持 |
| ≥ 2025-01-30 | deno | Deno v2 Node.js 兼容性 |