在构建 Nuxt 时,我们创建了一个新的服务器引擎:Nitro。
它提供了许多功能:
服务器 API 端点 和 中间件 由 Nitro 添加,底层使用了 h3。
主要特性包括:
res.end() 和 next())更多信息请查阅 h3 文档。
Nitro 允许通过全局可用的 $fetch 辅助函数“直接”调用路由。在浏览器端运行时,它会向服务器发起 API 请求;在服务器端运行时,则会直接调用对应的函数,避免了一次额外的 API 调用。
Content-Type 头更多 $fetch 功能信息,请参考 ofetch。
使用 API 路由(或中间件)时,只要返回值而非使用 res.end() 发送响应,Nitro 会为这些路由生成类型定义。
在使用 $fetch() 或 useFetch() 时可以访问这些类型。
Nitro 生成一个独立的服务器构建(dist),不依赖 node_modules。
Nuxt 2 的服务器不是独立的,运行 nuxt start 时需要 Nuxt 核心的一部分(使用 nuxt-start 或 nuxt 发布包)或自定义编程方式,这种方式脆弱且容易出错,不适合无服务器和服务工作者环境。
Nuxt 在运行 nuxt build 时,会生成该构建文件到 .output 目录。
输出包含运行 Nuxt 服务器的运行时代码,可以适配任何环境(包括实验性的浏览器服务工作者!)并托管静态文件,使其成为 JAMstack 的真正混合框架。此外,Nuxt 还实现了原生存储层,支持多源驱动和本地资源。