🐣 全新的 CLI
我们使用unjs/citty重构了 nuxi,这是第一个依赖于新版本 Nuxt 的版本,安全地位于其自己的存储库中。我们对此有宏伟的计划——请查看以下链接中的一些功能 + 路线图讨论nuxt/cli并随时贡献!
Nuxi 现在与主 nuxt 版本解耦——我们计划未来更快地迭代和发布 nuxi,因此您可以期待新功能即将推出!
🕸️ 原生 Web Streams 和 Response
随着unjs/h3等等unjs/nitro的改进,现在可以直接从服务器路由返回 Response 对象,这意味着在 Nuxt 中原生返回和处理流成为可能。
👉 请查看unjs/h3等等unjs/nitro发行说明
中的完整详细信息。
🔥 HTML 渲染优化#22179)中管理它们的 HTML 渲染,这意味着您可以配置 <link>、<meta>、<script>、<style> 等的**顺序**。而且——在我们的初步测试中——它甚至更快了!
可以通过 experimental.headNext 标志选择加入未来的头部改进。这目前包括基于capo.js (#22431()的新排序算法,并允许在 unhead 发布时启用未来的优化
export default defineNuxtConfig({
experimental: {
headNext: true
}
})
我们很想听听您的想法——您可以在此讨论.
中回复任何问题/反馈。
🛠️ 构建环境快捷方式#22302)或 webpack 客户端/服务器(#22304)构建的配置。以前这只能通过 vite:extendConfig 和 webpack:config 钩子实现。
例如
export default defineNuxtConfig({
vite: {
$client: {
build: {
rollupOptions: {
output: {
chunkFileNames: '_nuxt/[hash].js',
assetFileNames: '_nuxt/[hash][extname]',
entryFileNames: '_nuxt/[hash].js'
}
}
}
}
}
})
⚡️ Vite 4.4
我们选择不将 Vite 限制在次要版本,这意味着无论何时 Vite 发布新功能版本,您都可以立即选择加入。Vite 4.4 带来了许多令人兴奋的功能,包括实验性的 Lightning CSS 支持——以及更多!
👉 查看Vite 发行说明了解更多。
💪 TypeScript 更新
我们现在在生成的 tsconfig.json 中纯粹使用相对路径,而不是设置 baseUrl。这意味着更好地支持像 docker 镜像这样的开发环境,其中绝对路径可能与您的 IDE 不匹配(#22410).
我们还设置了一些额外的编译器标志默认值以匹配 Vite/TS 建议(#22468).
此外,您现在应该可以在 setPageLayout 和 <NuxtLayout name> 中获取布局的类型提示访问(#22363).
🦄 异步上下文支持
如果您曾遇到“Nuxt context unavailable”问题,这可能是为您准备的。我们现在在 Nuxt 和 Nitro 中都支持 Bun 和 Node 的原生异步上下文,通过实验性标志启用(#20918).
这使得在服务器上使用 Nuxt 可组合函数**无需**确保它们直接在设置函数中被调用。它还允许在 Nitro 中实现相同的效果,其中包含一个新的 useEvent() 实用工具,可在服务器路由中使用。
要试用它,您可以启用 experimental.asyncContext
export default defineNuxtConfig({
experimental: {
asyncContext: true
}
})
👓 观察器更新
我们修复了一些观察器问题,这意味着您应该更少地需要重新启动服务器——如果您正在使用层,您应该会看到显著的性能提升。
⚗️ Nitro 2.6
Nitro 2.6 带来了更多令人兴奋的功能,包括更小、更轻量的服务器以及在 .data 目录中新的持久数据存储。
👉 在完整发行文章.
✅ 升级
像往常一样,我们建议您运行以下命令进行升级
npx nuxi upgrade --force
中阅读更多。这将刷新您的锁文件,并确保您从 Nuxt 依赖的其他依赖项中拉取更新,尤其是在unjs生态系统中。