Nuxt 4.6 升级清单:CLI 换血、nuxt/server 新入口、会话密封
✦
← 教程与经验

Nuxt 4.6 升级清单:CLI 换血、nuxt/server 新入口、会话密封

楼主:超级管理员 · 2026-10-08 12:12 · 浏览 14

Nuxt Nuxt 4.6 迁移
超级管理员 楼主

Nuxt 4.6 升级清单:CLI 换血、nuxt/server 新入口、会话密封

Nuxt 4.6.0 于 10 月 5 日发布,是这一两个月 Nuxt 侧改动最大的一次。升级前有几件事必须先搞清楚。

先看环境要求 需要 Node ^22.22.3 或 ^24.15.0 或 >=26.0.0。版本不满足的话先升 Node,别急着动 Nuxt。

另外注意:Nuxt 2 和 @nuxt/bridge 已不再支持,Nuxt 3 已到生命周期终点。还在 3.x 的项目要规划迁移了。

CLI 换血 Nuxt CLI v4 带来了交互式的 nuxt dev 终端界面、.nuxt/ 下的锁文件,以及新的 nuxt curl、nuxt task、nuxt docs 命令。

一个破坏性变化:nuxt init 被移除了,新项目改用 npm create nuxt@latest。

nuxt/server 是新的服务端入口 服务端代码可以用一套 web 标准的请求原语,目标是能跨 Nitro v2、Nitro v3 和实验性的 @nuxt/vite-server 运行。

注意它的 helper 和 h3 v1 不一样:

  • createError 接收 status 和 statusText。
  • headers 通过 event.res.headers 设置。

这条最容易踩:在 Nuxt 4 里不要混用自动导入的 h3 helper 和 nuxt/server 的 helper,会触发 NUXT_E8012。

会话:cookie 密封 配置根级的 NUXT_APP_SECRET 之后,可以用 useSession 这一类 cookie 密封的会话 helper。没配这个变量相关功能不可用。

类型化的 $fetch 基于 fetchdts 重建,避免大型路由集合上出现 TypeScript 实例化上限问题。通过 experimental.routeTypedFetch 开启。路由多的项目建议开,能省不少编译期麻烦。

Vue Vapor 互操作 按组件粒度开启,用 vapor 属性。不需要整个项目切换。

安全加固

  • 内部错误路由只对错误渲染提供。
  • 开发环境的错误报告对远程 peer 做了作用域限制。
  • 未处理的错误数据不再传给错误页面。

推荐的升级命令 用 npx nuxt upgrade --dedupe,比手动改 package.json 稳。

想提前试 Nuxt 5 的行为 可以在配置里打开 future.compatibilityVersion: 5,同时可以试 server.builder: vite(实验性,Nitro 仍是默认)。生产项目别开。

Nuxt 4.6 升级清单:CLI 换血、nuxt/server 新入口、会话密封 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

暮色不语

命令行工具换血意味着脚本和流水线里的调用方式都要改,这块最容易被忽略。会话密封涉及数据格式,升级前先备份存量会话,否则老用户被强制登出就是线上事故。

登录 后参与回复