部署
了解更多关于 Nitro 部署提供商的信息。
Nitro 可以从同一代码库生成适合不同托管提供商的不同输出格式。 使用内置 preset,轻松配置 Nitro 以调整其输出格式,几乎不需要额外的代码或配置!
默认输出
默认的生产输出 preset 是 Node.js 服务器。
在开发模式下运行 Nitro 时,Nitro 将始终使用一个名为 nitro-dev 的特殊 preset,在隔离的 Worker 环境中使用带有 ESM 的 Node.js,其行为尽可能接近生产环境。
零配置提供商
使用 CI/CD 部署到生产环境时,Nitro 会尝试自动检测提供商环境并设置正确的环境,无需任何额外配置。目前,以下提供商可以零配置自动检测。
对于 Turborepo 用户,零配置检测将受到其严格环境模式的干扰。你可能需要显式允许变量或使用其宽松环境模式(使用
--env-mode=loose 标志)。更改部署 preset
如果需要针对特定提供商构建 Nitro,可通过定义名为 NITRO_PRESET 或 SERVER_PRESET 的环境变量,或更新 Nitro 配置或使用 --preset 参数来定位它。
对于依赖 CI/CD 的部署,建议使用环境变量方法。
示例: 定义 NITRO_PRESET 环境变量
nitro build --preset cloudflare_pages
示例: 更新 nitro.config.ts 文件
import { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
preset: 'cloudflare_pages'
})
兼容性日期
部署提供商定期更新其 runtime 行为。Nitro preset 已更新以支持这些新功能。
为了防止破坏现有部署,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 |