Lzh on GitHub

概述

了解有关 Nitro 部署提供商的更多信息。

Nitro 可以从相同的代码库生成适合不同托管提供商的不同输出格式。使用内置预设,您可以轻松配置 Nitro,以几乎无需额外代码或配置的方式调整其输出格式!

默认输出

默认的生产输出预设是 Node.js 服务器

在开发模式下运行 Nitro 时,Nitro 将始终使用一个名为 nitro-dev 的特殊预设,该预设在隔离的 Worker 环境中使用 Node.js 和 ESM,其行为尽可能接近生产环境。

零配置提供商

当使用 CI/CD 部署到生产环境时,Nitro 会尝试自动检测提供商环境并设置正确的提供商,无需任何额外配置。目前,以下提供商可以零配置自动检测。

对于 Turborepo 用户,零配置检测会受到其严格环境模式的干扰。您可能需要显式允许变量或使用其宽松环境模式(带 --env-mode=loose 标志)。

更改部署预设

如果您需要针对特定提供商构建 Nitro,可以通过定义名为 NITRO_PRESETSERVER_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-07netlifyNetlify functions v2
≥ 2024-09-19cloudflarecloudflare-module 预设的静态资产支持
≥ 2025-01-30denoDeno v2 Node.js 兼容性