部署

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

Nitro 可以从同一代码库为不同的托管提供商生成不同的输出格式。使用内置预设,你几乎无需额外的代码或配置即可调整输出格式。

#默认输出

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

在开发模式下,Nitro 始终使用特殊的 nitro-dev 预设,在隔离的 worker 环境中通过 Node.js(ESM)运行你的应用,尽可能贴近生产环境的行为。

#零配置提供商

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

Warning

对于 Turborepo 用户,其 Strict Environment Mode 可能会干扰零配置检测。你可能需要显式允许检测变量,或使用 Loose Environment Mode(--env-mode=loose 标志)。

其他内置提供商可以通过显式预设使用,包括 Zephyr

#更改部署预设

要为特定提供商进行构建,请设置 NITRO_PRESET 环境变量,更新 Nitro 的配置,或使用 --preset 参数。

对于 CI/CD 部署,推荐使用环境变量方式。

示例: 使用 NITRO_PRESET 环境变量或 --preset 参数

NITRO_PRESET=cloudflare_pages nitro build
# or
nitro build --preset cloudflare_pages

示例: 更新 nitro.config.ts 文件

import { defineConfig } from "nitro";

export default defineConfig({
  preset: 'cloudflare_pages'
})

#兼容性日期

部署提供商会定期更新其运行时行为。Nitro 预设会更新以支持这些新功能。

为避免破坏现有部署,Nitro 使用兼容性日期。这些日期让你可以在项目创建时锁定行为。准备就绪后,你也可以选择启用未来的更新。

当你创建新项目时,compatibilityDate 会被设置为当前日期。此设置保存在你的项目配置中。

你应该定期更新兼容性日期。更新后始终彻底测试你的部署。下面是一系列关键日期及其影响。