Nitro v3 引入了故意的不向后兼容的更改。本指南帮助您从 Nitro v2 迁移。
nitropack 重命名为 nitroNPM 包 nitropack(v2)已更名为 nitro(v3)。
迁移: 在 package.json 中更新 nitropack 依赖为 nitro:
{
"dependencies": {
-- "nitropack": "latest"
++ "nitro": "npm:nitro-nightly"
}
}
迁移: 在您的代码库中搜索并将所有 nitropack 实例重命名为 nitro:
-- import { defineNitroConfig } from "nitropack/config"
++ import { defineNitroConfig } from "nitro/config"
运行时工具已被移至各自的 nitro/* 子路径导出。请参考文档以了解用法。
-- import { useStorage } from "nitropack/runtime/storage"
++ import { useStorage } from "nitro/storage"
Nitro 现在要求最低 Node.js 版本为 20,因为 Node.js 18 将在 2025 年 4 月 达到生命周期结束。
请升级到 最新的 LTS 版本(>= 20)。
迁移:
node --version 检查您的本地 Node.js 版本,如有必要请更新。Nitro 类型现在仅从 nitro/types 导出。
迁移: 从 nitro/types 导入类型,而不是从 nitro:
-- import { NitroRuntimeConfig } from "nitropack"
++ import { NitroRuntimeConfig } from "nitro/types"
Nitro v2 支持一个捆绑的应用配置,可以在 app.config.ts 中定义配置,并通过 useAppConfig() 在运行时访问它们。
此功能已被移除。
迁移:
在您的服务器目录中使用常规的 .ts 文件并直接导入。
Nitro 预设已更新以确保与最新版本兼容。
一些(遗留)预设已被移除或重命名。
| 旧预设 | 新预设 |
|---|---|
node | node-middleware(导出更改为 middleware) |
cloudflare, cloudflare_worker, cloudflare_module_legacy | cloudflare_module |
deno-server-legacy | deno_server,使用 Deno v2 |
netlify-builder | netlify_functions 或 netlify_edge |
vercel-edge | vercel,启用 Fluid 计算 |
azure, azure_functions | azure_swa |
firebase | firebase-functions |
iis | iis-handler |
deno | deno-deploy |
edgio | 已停产 |
cli | 因使用不足而移除 |
service_worker | 因不稳定性而移除 |
firebase | 使用新的 Firebase 应用托管 |
Nitro v2 引入了多个子路径导出,其中一些已被移除或更新:
nitro/rollup、nitropack/core(请使用 nitro/builder)nitropack/runtime/*(请使用 nitro/*)nitropack/kit(已移除)nitropack/presets(已移除)曾经引入了一个实验性的 nitropack/kit,但现在已经被移除。未来可能会推出一个独立的 Nitro Kit 包,并且目标会更加明确。
Migration:
nitro/types 的 NitroModule,而不是来自 kit 的 defineNitroModule。如果您之前在 Nitro 插件外部使用过 useNitroApp().hooks,它可能为 undefined。请使用新的 useNitroHooks() 来保证获得实例。