[{"data":1,"prerenderedAt":5094},["ShallowReactive",2],{"docs-all-flat":3,"docs-\u002Fdocs\u002Fapi\u002Fkit\u002Fnitro":1018},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479,483,487,491,495,499,503,507,511,515,519,523,527,531,535,539,543,547,551,555,559,563,567,571,575,579,583,587,591,595,599,603,607,611,615,619,623,627,631,635,639,643,647,651,655,659,663,667,671,675,679,683,687,691,695,699,703,707,711,715,719,723,727,731,735,739,743,747,751,755,759,763,767,770,774,778,782,786,790,794,798,802,806,809,813,817,821,825,829,833,837,841,845,849,852,855,859,863,867,871,874,877,881,884,888,892,895,898,901,904,907,911,915,918,922,926,930,934,938,942,946,950,954,958,962,966,970,974,978,982,986,990,994,998,1002,1006,1010,1014],{"path":5,"title":6,"description":7},"\u002Fdocs\u002Fgetting-started\u002Fintroduction","介绍","Nuxt 的目标是提供直观且高性能的 Web 开发体验，并始终将优秀的开发者体验（Developer Experience）放在心上。",{"path":9,"title":10,"description":11},"\u002Fdocs\u002Fgetting-started\u002Finstallation","安装","通过在线 starter 快速上手 Nuxt，或在本地使用终端从零开始。",{"path":13,"title":14,"description":15},"\u002Fdocs\u002Fgetting-started\u002Fconfiguration","配置","Nuxt 提供了合理的默认配置，让你高效开发。",{"path":17,"title":18,"description":19},"\u002Fdocs\u002Fgetting-started\u002Fviews","视图","Nuxt 提供了多个组件层来实现应用的用户界面。",{"path":21,"title":22,"description":23},"\u002Fdocs\u002Fgetting-started\u002Fassets","资源","Nuxt 为你的资源提供了两种处理方式。",{"path":25,"title":26,"description":27},"\u002Fdocs\u002Fgetting-started\u002Fstyling","样式","了解如何为你的 Nuxt 应用添加样式。",{"path":29,"title":30,"description":31},"\u002Fdocs\u002Fgetting-started\u002Frouting","路由","Nuxt 的文件系统路由会为 pages\u002F 目录中的每个文件创建一条路由。",{"path":33,"title":34,"description":35},"\u002Fdocs\u002Fgetting-started\u002Fseo-meta","SEO 与 Meta","借助强大的 head 配置、composables 和组件，改善你的 Nuxt 应用的 SEO。",{"path":37,"title":38,"description":39},"\u002Fdocs\u002Fgetting-started\u002Ftransitions","过渡","使用 Vue 或浏览器原生的 View Transitions，在页面和布局之间应用过渡效果。",{"path":41,"title":42,"description":43},"\u002Fdocs\u002Fgetting-started\u002Fdata-fetching","数据获取","Nuxt 提供了用于处理应用内数据获取的 composables。",{"path":45,"title":46,"description":47},"\u002Fdocs\u002Fgetting-started\u002Fstate-management","状态管理","Nuxt 提供了强大的状态管理库和 useState composable，用于创建响应式且对 SSR 友好的共享状态。",{"path":49,"title":50,"description":51},"\u002Fdocs\u002Fgetting-started\u002Ferror-handling","错误处理","了解如何在 Nuxt 中捕获和处理错误。",{"path":53,"title":54,"description":55},"\u002Fdocs\u002Fgetting-started\u002Fserver","Server","利用 Nuxt 的服务端框架构建全栈应用。你可以从数据库或其他服务端获取数据、创建 API，甚至生成像站点地图或 RSS 这样的静态服务端内容——全部来自同一个代码库。",{"path":57,"title":58,"description":59},"\u002Fdocs\u002Fgetting-started\u002Flayers","Layers","Nuxt 提供了一套强大的系统，允许你扩展默认文件、配置以及更多内容。",{"path":61,"title":62,"description":63},"\u002Fdocs\u002Fgetting-started\u002Fprerendering","Prerendering","Nuxt 允许在构建时静态渲染某些页面，以改善特定的性能或 SEO 指标。",{"path":65,"title":66,"description":67},"\u002Fdocs\u002Fgetting-started\u002Fdeployment","Deployment","了解如何将你的 Nuxt 应用部署到任何托管提供商。",{"path":69,"title":70,"description":71},"\u002Fdocs\u002Fgetting-started\u002Ftesting","Testing","如何测试你的 Nuxt 应用。",{"path":73,"title":74,"description":75},"\u002Fdocs\u002Fgetting-started\u002Fupgrade","Upgrade Guide","了解如何升级到最新的 Nuxt 版本。",{"path":77,"title":78,"description":79},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxt",".nuxt","Nuxt 在开发阶段使用 .nuxt\u002F 目录来生成你的 Vue 应用。",{"path":81,"title":82,"description":83},"\u002Fdocs\u002Fdirectory-structure\u002Foutput",".output","Nuxt 在为生产环境构建应用时创建 .output\u002F 目录。",{"path":85,"title":86,"description":87},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fassets","assets","assets\u002F 目录用于添加所有将由构建工具处理的网站资源。",{"path":89,"title":90,"description":91},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fcomponents","components","components\u002F 目录用于存放你所有的 Vue 组件。",{"path":93,"title":94,"description":95},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fcomposables","composables","使用 composables\u002F 目录将你的 Vue 组合式函数自动导入到应用中。",{"path":97,"title":98,"description":99},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Flayouts","layouts","Nuxt 提供了一个布局框架，用于将通用的 UI 模式提取为可复用的布局。",{"path":101,"title":102,"description":103},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","middleware","Nuxt 提供中间件，用于在导航到特定路由前运行代码。",{"path":105,"title":106,"description":107},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fpages","pages","Nuxt 提供基于文件的路由，用于在 Web 应用中创建路由。",{"path":109,"title":110,"description":111},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fplugins","plugins","Nuxt 拥有一个插件系统，用于在创建 Vue 应用时使用 Vue 插件等。",{"path":113,"title":114,"description":115},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Futils","utils","使用 utils\u002F 目录在你的应用中自动导入工具函数。",{"path":117,"title":118,"description":119},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fapp","app.vue","app.vue 文件是你 Nuxt 应用的主组件。",{"path":121,"title":122,"description":123},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fapp-config","app.config.ts","使用 App Config 文件在应用内部暴露响应式配置。",{"path":125,"title":126,"description":127},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Ferror","error.vue","error.vue 文件是你 Nuxt 应用中的错误页面。",{"path":129,"title":130,"description":131},"\u002Fdocs\u002Fdirectory-structure\u002Fcontent","content","使用 content\u002F 目录为你的应用创建一个基于文件的 CMS。",{"path":133,"title":134,"description":135},"\u002Fdocs\u002Fdirectory-structure\u002Flayers","layers","使用 layers\u002F 目录在你的应用中组织和自动注册本地 layers。",{"path":137,"title":138,"description":139},"\u002Fdocs\u002Fdirectory-structure\u002Fmodules","modules","使用 modules\u002F 目录在你的应用中自动注册本地模块。",{"path":141,"title":142,"description":143},"\u002Fdocs\u002Fdirectory-structure\u002Fnode_modules","node_modules","包管理器将项目的依赖存储在 node_modules\u002F 目录中。",{"path":145,"title":146,"description":147},"\u002Fdocs\u002Fdirectory-structure\u002Fpublic","public","public\u002F 目录用于提供网站的静态资源。",{"path":149,"title":150,"description":151},"\u002Fdocs\u002Fdirectory-structure\u002Fserver","server","server\u002F 目录用于为你的应用注册 API 和服务端处理器。",{"path":153,"title":154,"description":155},"\u002Fdocs\u002Fdirectory-structure\u002Fshared","shared","使用 shared\u002F 目录在 Vue 应用和 Nitro 服务端之间共享功能。",{"path":157,"title":158,"description":159},"\u002Fdocs\u002Fdirectory-structure\u002Fenv",".env",".env 文件用于指定构建\u002F开发时的环境变量。",{"path":161,"title":162,"description":163},"\u002Fdocs\u002Fdirectory-structure\u002Fgitignore",".gitignore",".gitignore 文件用于指定 git 应当忽略的、有意不跟踪的文件。",{"path":165,"title":166,"description":167},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxtignore",".nuxtignore",".nuxtignore 文件用于让 Nuxt 在构建阶段忽略项目根目录中的文件。",{"path":169,"title":170,"description":171},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxtrc",".nuxtrc",".nuxtrc 文件允许你用扁平语法定义 Nuxt 配置。",{"path":173,"title":174,"description":175},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxt-config","nuxt.config.ts","只需要一个 nuxt.config 文件，即可轻松配置 Nuxt。",{"path":177,"title":178,"description":179},"\u002Fdocs\u002Fdirectory-structure\u002Fpackage","package.json","package.json 文件包含你应用的所有依赖和脚本。",{"path":181,"title":182,"description":183},"\u002Fdocs\u002Fdirectory-structure\u002Ftsconfig","tsconfig.json","了解 Nuxt 如何在项目的不同部分管理 TypeScript 配置。",{"path":185,"title":186,"description":187},"\u002Fdocs\u002Fdirectory-structure","Nuxt 目录结构","了解 Nuxt 应用的目录结构以及如何使用它。",{"path":189,"title":190,"description":191},"\u002Fdocs\u002Fguide","Nuxt 指南","通过深入的指南了解 Nuxt 的工作原理。",{"path":193,"title":194,"description":195},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering","渲染模式","了解 Nuxt 中可用的不同渲染模式。",{"path":197,"title":198,"description":199},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fvuejs-development","Vue.js 开发","Nuxt 使用 Vue.js，并添加了组件自动导入、基于文件的路由以及支持 SSR 的组合式函数等特性。",{"path":201,"title":202,"description":203},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","Nuxt 生命周期","理解 Nuxt 应用的生命周期，可以帮助你更深入地了解框架是如何运作的，尤其是在服务端渲染和客户端渲染两方面。",{"path":205,"title":206,"description":207},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fauto-imports","自动导入","Nuxt 会自动导入组件、组合式函数、辅助函数和 Vue API。",{"path":209,"title":210,"description":211},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fserver-engine","服务端引擎","Nuxt 由一个全新的服务端引擎驱动：Nitro。",{"path":213,"title":214,"description":215},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fmodules","模块","Nuxt 提供了一个模块系统来扩展框架核心并简化集成。",{"path":217,"title":218,"description":219},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fesm","ES 模块","Nuxt 使用原生的 ES 模块。",{"path":221,"title":222,"description":223},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Ftypescript","TypeScript","Nuxt 完全类型化，并提供了有用的快捷方式，确保你在编码时能获取准确的类型信息。",{"path":225,"title":226,"description":227},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fcode-style","代码风格","Nuxt 开箱即用地支持 ESLint",{"path":229,"title":230,"description":231},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fdevcontainers","Dev Containers","在开发容器中设置或打开 Nuxt 项目，以获得一致开发环境。",{"path":233,"title":234,"description":235},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fhydration","Nuxt and Hydration","为什么修复水合问题很重要",{"path":237,"title":238,"description":239},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fperformance","Nuxt performance","提升 Nuxt 应用性能的最佳实践。",{"path":241,"title":242,"description":243},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fplugins","Nuxt Plugins","使用 Nuxt 插件时的最佳实践。",{"path":245,"title":246,"description":247},"\u002Fdocs\u002Fguide\u002Fai\u002Fmcp","Nuxt MCP Server","借助 Model Context Protocol 支持，在你的 AI 助手中使用 Nuxt 文档。",{"path":249,"title":250,"description":251},"\u002Fdocs\u002Fguide\u002Fai\u002Fllms-txt","Nuxt LLMs.txt","如何让 Cursor、Windsurf、GitHub Copilot、ChatGPT 和 Claude 等 AI 工具理解 Nuxt 的概念、API 和最佳实践。",{"path":253,"title":254,"description":255},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fgetting-started","创建你的第一个模块","学习如何使用官方启动模板创建你的第一个 Nuxt 模块。",{"path":257,"title":258,"description":259},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fmodule-anatomy","理解模块结构","学习 Nuxt 模块是如何构成的，以及如何定义它们。",{"path":261,"title":262,"description":263},"\u002Fdocs\u002Fguide\u002Fmodules\u002Frecipes-basics","添加插件、组件等","学习如何从你的模块注入插件、组件、组合式函数和服务端路由。",{"path":265,"title":266,"description":267},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fmodule-dependencies","模块依赖","声明对其它模块的依赖，并带有版本约束和配置合并。",{"path":269,"title":270,"description":271},"\u002Fdocs\u002Fguide\u002Fmodules\u002Frecipes-advanced","使用钩子与扩展类型","在你的模块中掌握生命周期钩子、虚拟文件和 TypeScript 声明。",{"path":273,"title":274,"description":275},"\u002Fdocs\u002Fguide\u002Fmodules\u002Ftesting","测试你的模块","学习如何对你的 Nuxt 模块进行单元、集成和 E2E 测试。",{"path":277,"title":278,"description":279},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fbest-practices","遵循最佳实践","使用这些指南构建高性能且可维护的 Nuxt 模块。",{"path":281,"title":282,"description":283},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fecosystem","发布与分享你的模块","加入 Nuxt 模块生态，并将你的模块发布到 npm。",{"path":285,"title":286,"description":287},"\u002Fdocs\u002Fguide\u002Fmodules","Module Author Guide","学习如何创建 Nuxt 模块，以集成、增强或扩展任意 Nuxt 应用。",{"path":289,"title":290,"description":291},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fcustom-routing","自定义路由","在 Nuxt 中，你的路由由 pages 目录内文件的结构定义。不过，由于底层使用了 vue-router，Nuxt 提供了几种在你的项目中添加自定义路由的方式。",{"path":293,"title":294,"description":295},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fvite-plugin","在 Nuxt 中使用 Vite 插件","学习如何将 Vite 插件集成到你的 Nuxt 项目中。",{"path":297,"title":298,"description":299},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fcustom-usefetch","Nuxt 中的自定义 useFetch","如何在 Nuxt 中创建用于调用你外部 API 的自定义 fetcher。",{"path":301,"title":302,"description":303},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","会话与鉴权","鉴权是 Web 应用中极其常见的需求。本配方将向你展示如何在你的 Nuxt 应用中实现基本的用户注册与鉴权。",{"path":305,"title":306,"description":307},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fevents","创建自定义事件","Nuxt 提供了一个由 hookable 驱动的强大事件系统。",{"path":309,"title":310,"description":311},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fexperimental-features","实验性特性","启用 Nuxt 实验性特性以解锁新的可能性。",{"path":313,"title":314,"description":315},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Ffeatures","特性开关","启用或禁用可选的 Nuxt 特性，以解锁新的可能性。",{"path":317,"title":318,"description":319},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Finternals","Nuxt 是如何工作的？","Nuxt 是一个极简但高度可定制的框架，用于构建 Web 应用。",{"path":321,"title":322,"description":323},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fruntime-config","运行时配置","Nuxt 提供了一套运行时配置 API，以在你的应用内暴露配置和密钥。",{"path":325,"title":326,"description":327},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","Nightly 发布通道","nightly 发布通道允许使用直接从仓库最新提交构建的 Nuxt。",{"path":329,"title":330,"description":331},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fhooks","生命周期钩子","Nuxt 提供了一个强大的钩子系统，可使用钩子扩展几乎每个方面。",{"path":333,"title":334,"description":335},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fkit","Nuxt Kit","@nuxt\u002Fkit 提供了面向模块作者的功能。",{"path":337,"title":338,"description":339},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fnuxt-app","NuxtApp","在 Nuxt 中，你可以在组合式函数、组件和插件中访问运行时应用上下文。",{"path":341,"title":342,"description":343},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Flayers","编写 Nuxt Layers","Nuxt 提供了一个强大的系统，允许你扩展默认文件、配置等等。",{"path":345,"title":346,"description":347},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fbuilders","创建 Builder","了解 Nuxt builder 是如何工作的，以及如何编写你自己的 builder。",{"path":349,"title":350,"description":351},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fdebugging","调试","在 Nuxt 中，你可以直接在浏览器中以及你的 IDE 里开始调试你的应用。",{"path":353,"title":354,"description":354},"\u002Fdocs\u002Fguide\u002Fgoing-further","",{"path":356,"title":357,"description":358},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fclient-only","\u003CClientOnly>","使用 \u003CClientOnly> 组件仅在客户端渲染组件。",{"path":360,"title":361,"description":362},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fdev-only","\u003CDevOnly>","使用 \u003CDevOnly> 组件仅在开发期间渲染组件。",{"path":364,"title":365,"description":366},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","\u003CNuxtClientFallback>","Nuxt 提供了 \u003CNuxtClientFallback> 组件，当其任意子组件在 SSR 中触发错误时，在客户端渲染其内容",{"path":368,"title":369,"description":370},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-picture","\u003CNuxtPicture>","Nuxt 提供了 \u003CNuxtPicture> 组件来处理自动图像优化。",{"path":372,"title":373,"description":374},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fteleports","\u003CTeleport>","\u003CTeleport> 组件将组件传送到 DOM 中的另一个位置。",{"path":376,"title":377,"description":378},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","\u003CNuxtRouteAnnouncer>","\u003CNuxtRouteAnnouncer> 组件添加一个带有页面标题的隐藏元素，用于向辅助技术播报路由变化。",{"path":380,"title":381,"description":382},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-time","\u003CNuxtTime>","\u003CNuxtTime> 组件以本地化友好的格式显示时间，并保持服务端-客户端一致。",{"path":384,"title":385,"description":386},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","\u003CNuxtAnnouncer>","\u003CNuxtAnnouncer> 组件添加一个隐藏元素，用于向辅助技术播报动态内容变化。",{"path":388,"title":389,"description":390},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-page","\u003CNuxtPage>","\u003CNuxtPage> 组件用于显示位于 pages\u002F 目录中的页面。",{"path":392,"title":393,"description":394},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-layout","\u003CNuxtLayout>","Nuxt 提供了 \u003CNuxtLayout> 组件，用于在页面和错误页面上显示布局。",{"path":396,"title":397,"description":398},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-link","\u003CNuxtLink>","Nuxt 提供了 \u003CNuxtLink> 组件来处理应用内的各类链接。",{"path":400,"title":401,"description":402},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","\u003CNuxtLoadingIndicator>","在页面导航之间显示进度条。",{"path":404,"title":405,"description":406},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","\u003CNuxtErrorBoundary>","\u003CNuxtErrorBoundary> 组件处理其默认插槽中发生的客户端错误。",{"path":408,"title":409,"description":410},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","\u003CNuxtWelcome>","\u003CNuxtWelcome> 组件用于欢迎通过启动模板创建的新项目的用户。",{"path":412,"title":413,"description":414},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-island","\u003CNuxtIsland>","Nuxt 提供了 \u003CNuxtIsland> 组件，用于渲染无客户端 JS 的非交互式组件。",{"path":416,"title":417,"description":418},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-img","\u003CNuxtImg>","Nuxt 提供了 \u003CNuxtImg> 组件来处理自动图像优化。",{"path":420,"title":421,"description":422},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","createUseAsyncData","一个工厂函数，用于创建带有预定义默认选项的自定义 useAsyncData 组合式函数。",{"path":424,"title":425,"description":426},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","createUseFetch","一个工厂函数，用于创建带有预定义默认选项的自定义 useFetch 组合式函数。",{"path":428,"title":429,"description":430},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fon-prehydrate","onPrehydrate","使用 onPrehydrate 在 Nuxt 对页面进行 hydration 之前的客户端立即运行回调。",{"path":432,"title":433,"description":434},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-announcer","useAnnouncer","一个用于向屏幕阅读器播报消息的组合式函数。",{"path":436,"title":437,"description":438},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-app-config","useAppConfig","访问在项目中定义的可响应 app config。",{"path":440,"title":441,"description":442},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-async-data","useAsyncData","useAsyncData 以 SSR 友好的方式提供对异步解析数据的访问。",{"path":444,"title":445,"description":446},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-cookie","useCookie","useCookie 是一个 SSR 友好的组合式函数，用于读写 cookie。",{"path":448,"title":449,"description":450},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-error","useError","useError 组合式函数返回正在被处理的全局 Nuxt 错误。",{"path":452,"title":453,"description":454},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-fetch","useFetch","使用 SSR 友好的组合式函数从 API 端点获取数据。",{"path":456,"title":457,"description":458},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-head","useHead","useHead 用于自定义 Nuxt 应用各个页面的 head 属性。",{"path":460,"title":461,"description":462},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-head-safe","useHeadSafe","处理用户输入时提供 head 数据的推荐方式。",{"path":464,"title":465,"description":466},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-hydration","useHydration","允许完全控制 hydration 周期，以便从服务端设置和接收数据。",{"path":468,"title":469,"description":470},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-layout","useLayout","useLayout 返回为当前路由解析出的布局。",{"path":472,"title":473,"description":474},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","useLazyAsyncData","该组合式函数包装 useAsyncData，会在 handler 解析之前立即触发导航。",{"path":476,"title":477,"description":478},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","useLazyFetch","该组合式函数是对 useFetch 的封装，会在 handler 解析之前立即触发导航。",{"path":480,"title":481,"description":482},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","useLoadingIndicator","该组合式函数让你访问应用页面的加载状态。",{"path":484,"title":485,"description":486},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","useNuxtApp","访问 Nuxt 应用的共享运行时上下文。",{"path":488,"title":489,"description":490},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","useNuxtData","访问数据获取组合式函数的当前缓存值。",{"path":492,"title":493,"description":494},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","usePreviewMode","使用 usePreviewMode 检查并控制 Nuxt 的预览模式",{"path":496,"title":497,"description":498},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-event","useRequestEvent","使用 useRequestEvent 组合式函数访问传入的请求事件。",{"path":500,"title":501,"description":502},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","useRequestFetch","使用 useRequestFetch 组合式函数为服务端 fetch 请求转发请求上下文和请求头。",{"path":504,"title":505,"description":506},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-header","useRequestHeader","使用 useRequestHeader 访问某个特定的传入请求头。",{"path":508,"title":509,"description":510},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-headers","useRequestHeaders","使用 useRequestHeaders 访问传入的请求头。",{"path":512,"title":513,"description":514},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-url","useRequestURL","使用 useRequestURL 组合式函数访问传入的请求 URL。",{"path":516,"title":517,"description":518},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-response-header","useResponseHeader","使用 useResponseHeader 设置服务端响应头。",{"path":520,"title":521,"description":522},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-route","useRoute","useRoute 组合式函数返回当前路由。",{"path":524,"title":525,"description":526},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","useRouteAnnouncer","该组合式函数监视页面标题变化，并相应地更新播报消息。",{"path":528,"title":529,"description":530},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-router","useRouter","useRouter 组合式函数返回 router 实例。",{"path":532,"title":533,"description":534},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","useRuntimeConfig","使用 useRuntimeConfig 组合式函数访问运行时配置变量。",{"path":536,"title":537,"description":538},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","useRuntimeHook","在 Nuxt 应用中注册一个运行时钩子，并确保在作用域销毁时被正确清理。",{"path":540,"title":541,"description":542},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","useSeoMeta","useSeoMeta 组合式函数让你可以将站点的 SEO meta 标签定义为一个扁平对象，并提供完整的 TypeScript 支持。",{"path":544,"title":545,"description":546},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","useServerSeoMeta","useServerSeoMeta 组合式函数让你可以将站点的 SEO meta 标签定义为一个扁平对象，并提供完整的 TypeScript 支持。",{"path":548,"title":549,"description":550},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-state","useState","useState 组合式函数创建一个可响应的、SSR 友好的共享状态。",{"path":552,"title":553,"description":554},"\u002Fdocs\u002Fapi\u002Futils\u002Fdollarfetch","$fetch","Nuxt 使用 ofetch 全局暴露了 $fetch 辅助函数，用于发起 HTTP 请求。",{"path":556,"title":557,"description":558},"\u002Fdocs\u002Fapi\u002Futils\u002Fabort-navigation","abortNavigation","abortNavigation 是一个辅助函数，用于阻止导航的发生，并在设置了参数时抛出错误。",{"path":560,"title":561,"description":562},"\u002Fdocs\u002Fapi\u002Futils\u002Fadd-route-middleware","addRouteMiddleware","addRouteMiddleware() 是一个在你的应用中动态添加中间件的辅助函数。",{"path":564,"title":565,"description":566},"\u002Fdocs\u002Fapi\u002Futils\u002Fcall-once","callOnce","在 SSR 或 CSR 期间只运行一次给定的函数或代码块。",{"path":568,"title":569,"description":570},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-error","clearError","clearError 组合式函数清除所有已处理的错误。",{"path":572,"title":573,"description":574},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-nuxt-data","clearNuxtData","删除 useAsyncData 和 useFetch 的缓存数据、错误状态和挂起的 promise。",{"path":576,"title":577,"description":578},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-nuxt-state","clearNuxtState","删除 useState 的缓存状态。",{"path":580,"title":581,"description":582},"\u002Fdocs\u002Fapi\u002Futils\u002Fcreate-error","createError","创建一个带有附加元数据的错误对象。",{"path":584,"title":585,"description":586},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","defineLazyHydrationComponent","使用特定策略定义一个懒加载 hydration 组件。",{"path":588,"title":589,"description":590},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-component","defineNuxtComponent","defineNuxtComponent() 是一个用于使用 Options API 定义类型安全组件的辅助函数。",{"path":592,"title":593,"description":594},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","defineNuxtPlugin","defineNuxtPlugin() 是一个用于创建 Nuxt 插件的辅助函数。",{"path":596,"title":597,"description":598},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","defineNuxtRouteMiddleware","使用 defineNuxtRouteMiddleware 辅助函数创建命名路由中间件。",{"path":600,"title":601,"description":602},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-page-meta","definePageMeta","为你的页面组件定义元数据。",{"path":604,"title":605,"description":606},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-route-rules","defineRouteRules","在页面层面定义用于混合渲染的路由规则。",{"path":608,"title":609,"description":610},"\u002Fdocs\u002Fapi\u002Futils\u002Fnavigate-to","navigateTo","navigateTo 是一个用于以编程方式导航用户的辅助函数。",{"path":612,"title":613,"description":614},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-before-route-leave","onBeforeRouteLeave","onBeforeRouteLeave 组合式函数允许在组件内部注册一个路由守卫。",{"path":616,"title":617,"description":618},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-before-route-update","onBeforeRouteUpdate","onBeforeRouteUpdate 组合式函数允许在组件内部注册一个路由守卫。",{"path":620,"title":621,"description":622},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-nuxt-ready","onNuxtReady","onNuxtReady 组合式函数允许在你的应用完成初始化之后运行一个回调。",{"path":624,"title":625,"description":626},"\u002Fdocs\u002Fapi\u002Futils\u002Fprefetch-components","prefetchComponents","Nuxt 提供了用于在预取组件方面给予你控制的工具。",{"path":628,"title":629,"description":630},"\u002Fdocs\u002Fapi\u002Futils\u002Fpreload-components","preloadComponents","Nuxt 提供了用于在预加载组件方面给予你控制的工具。",{"path":632,"title":633,"description":634},"\u002Fdocs\u002Fapi\u002Futils\u002Fpreload-route-components","preloadRouteComponents","preloadRouteComponents 允许你手动预加载 Nuxt 应用中的单个页面。",{"path":636,"title":637,"description":638},"\u002Fdocs\u002Fapi\u002Futils\u002Fprerender-routes","prerenderRoutes","prerenderRoutes 向 Nitro 暗示预渲染一个额外的路由。",{"path":640,"title":641,"description":642},"\u002Fdocs\u002Fapi\u002Futils\u002Frefresh-cookie","refreshCookie","当 cookie 发生变化时，手动刷新 useCookie 的值",{"path":644,"title":645,"description":646},"\u002Fdocs\u002Fapi\u002Futils\u002Frefresh-nuxt-data","refreshNuxtData","刷新 Nuxt 中所有或特定的 asyncData 实例",{"path":648,"title":649,"description":650},"\u002Fdocs\u002Fapi\u002Futils\u002Freload-nuxt-app","reloadNuxtApp","reloadNuxtApp 会对页面执行一次硬刷新。",{"path":652,"title":653,"description":654},"\u002Fdocs\u002Fapi\u002Futils\u002Fset-page-layout","setPageLayout","setPageLayout 允许你动态更改页面的布局。",{"path":656,"title":657,"description":658},"\u002Fdocs\u002Fapi\u002Futils\u002Fset-response-status","setResponseStatus","setResponseStatus 设置响应的状态码（以及可选的 statusText）。",{"path":660,"title":661,"description":662},"\u002Fdocs\u002Fapi\u002Futils\u002Fshow-error","showError","Nuxt 提供了一种快速且简单的方式，在需要的时候显示全屏错误页。",{"path":664,"title":665,"description":666},"\u002Fdocs\u002Fapi\u002Futils\u002Fupdate-app-config","updateAppConfig","在运行时更新 App Config。",{"path":668,"title":669,"description":670},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fadd","nuxt add","在你的 Nuxt 应用中快速搭建一个实体（文件）。",{"path":672,"title":673,"description":674},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fanalyze","nuxt analyze","分析生产环境的打包产物或你的 Nuxt 应用。",{"path":676,"title":677,"description":678},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fbuild","nuxt build","构建你的 Nuxt 应用。",{"path":680,"title":681,"description":682},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fbuild-module","nuxt build-module","用于在发布前构建你的 Nuxt 模块的 Nuxt 命令。",{"path":684,"title":685,"description":686},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fcleanup","nuxt cleanup","移除常见的 Nuxt 生成文件和缓存。",{"path":688,"title":689,"description":690},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fdev","nuxt dev","dev 命令会在 http:\u002F\u002Flocalhost:3000 启动一个带有热模块替换（HMR）的开发服务器。",{"path":692,"title":693,"description":694},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fdevtools","nuxt devtools","devtools 命令允许你基于每个项目启用或禁用 Nuxt DevTools。",{"path":696,"title":697,"description":698},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fgenerate","nuxt generate","预渲染应用的每一个路由，并将结果存储为纯 HTML 文件。",{"path":700,"title":701,"description":702},"\u002Fdocs\u002Fapi\u002Fcommands\u002Finfo","nuxt info","info 命令会记录当前或指定 Nuxt 项目的相关信息。",{"path":704,"title":705,"description":706},"\u002Fdocs\u002Fapi\u002Fcommands\u002Finit","create nuxt","init 命令用于初始化一个全新的 Nuxt 项目。",{"path":708,"title":709,"description":710},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fmodule","nuxt module","通过命令行搜索并向你的 Nuxt 应用添加模块。",{"path":712,"title":713,"description":714},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fprepare","nuxt prepare","prepare 命令会在你的应用中创建一个 .nuxt 目录并生成类型。",{"path":716,"title":717,"description":718},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fpreview","nuxt preview","preview 命令会启动一个服务器，用于在运行 build 命令后预览你的应用。",{"path":720,"title":721,"description":722},"\u002Fdocs\u002Fapi\u002Fcommands\u002Ftest","nuxt test","test 命令使用 @nuxt\u002Ftest-utils 运行测试。",{"path":724,"title":725,"description":726},"\u002Fdocs\u002Fapi\u002Fcommands\u002Ftypecheck","nuxt typecheck","typecheck 命令运行 vue-tsc 来全量检查你的应用类型。",{"path":728,"title":729,"description":730},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fupgrade","nuxt upgrade","upgrade 命令将 Nuxt 升级到最新版本。",{"path":732,"title":733,"description":734},"\u002Fdocs\u002Fapi\u002Fkit\u002Fmodules","Modules","Nuxt Kit 提供了一系列工具，帮助你创建和使用模块。你可以使用这些工具来创建自己的模块，或复用已有的模块。",{"path":736,"title":737,"description":738},"\u002Fdocs\u002Fapi\u002Fkit\u002Fruntime-config","Runtime Config","Nuxt Kit 提供了一系列工具，帮助你访问和修改 Nuxt 运行时配置。",{"path":740,"title":741,"description":742},"\u002Fdocs\u002Fapi\u002Fkit\u002Ftemplates","Templates","Nuxt Kit 提供了一系列工具，帮助你处理模板。这些函数允许你在开发和构建期间生成额外的文件。",{"path":744,"title":745,"description":746},"\u002Fdocs\u002Fapi\u002Fkit\u002Fapp-config","App Config","Nuxt Kit 提供了一系列工具，帮助你访问和修改 Nuxt 应用配置。",{"path":748,"title":749,"description":750},"\u002Fdocs\u002Fapi\u002Fkit\u002Fnitro","Nitro","Nuxt Kit 提供了一系列工具，帮助你使用 Nitro。这些函数允许你添加服务器处理器、插件和预渲染路由。",{"path":752,"title":753,"description":754},"\u002Fdocs\u002Fapi\u002Fkit\u002Fresolving","Resolving","Nuxt Kit 提供了从 Nuxt 根目录或自定义基准路径解析路径的实用工具。",{"path":756,"title":757,"description":758},"\u002Fdocs\u002Fapi\u002Fkit\u002Flogging","Logging","Nuxt Kit 提供了一系列工具，帮助你使用日志记录。这些函数允许你以额外功能记录消息。",{"path":760,"title":761,"description":762},"\u002Fdocs\u002Fapi\u002Fkit\u002Fbuilder","Builder","Nuxt Kit 提供了一系列工具，帮助你使用构建器。这些函数允许你扩展 Vite 和 webpack 配置。",{"path":764,"title":765,"description":766},"\u002Fdocs\u002Fapi\u002Fkit\u002Fexamples","Examples","Nuxt Kit 工具的使用示例。",{"path":768,"title":58,"description":769},"\u002Fdocs\u002Fapi\u002Fkit\u002Flayers","Nuxt Kit 提供了帮助你处理层及其目录结构的工具。",{"path":771,"title":772,"description":773},"\u002Fdocs\u002Fapi\u002Fkit\u002Fprogrammatic","Programmatic Usage","Nuxt Kit 提供了一系列工具，帮助你以编程方式使用 Nuxt。这些函数允许你加载 Nuxt、构建 Nuxt，以及加载 Nuxt 配置。",{"path":775,"title":776,"description":777},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcompatibility","Compatibility","Nuxt Kit 提供了一系列工具，帮助你检查模块与不同 Nuxt 版本的兼容性。",{"path":779,"title":780,"description":781},"\u002Fdocs\u002Fapi\u002Fkit\u002Fautoimports","Auto-imports","Nuxt Kit 提供了一系列工具，帮助你处理自动导入。这些函数允许你注册自己的 utils、composables 和 Vue API。",{"path":783,"title":784,"description":785},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcomponents","Components","Nuxt Kit 提供了一系列工具，帮助你处理组件。你可以全局或局部注册组件，也可以添加要被扫描的目录。",{"path":787,"title":788,"description":789},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcontext","Context","Nuxt Kit 提供了一系列工具，帮助你处理上下文。",{"path":791,"title":792,"description":793},"\u002Fdocs\u002Fapi\u002Fkit\u002Fpages","Pages","Nuxt Kit 提供了一系列工具，帮助你创建和使用页面。你可以使用这些工具来操作页面配置或定义路由规则。",{"path":795,"title":796,"description":797},"\u002Fdocs\u002Fapi\u002Fkit\u002Flayout","Layout","Nuxt Kit 提供了一系列工具，帮助你处理布局。",{"path":799,"title":800,"description":801},"\u002Fdocs\u002Fapi\u002Fkit\u002Fhead","Head","Nuxt Kit 提供了一系列工具，帮助你在模块中管理 head 配置。",{"path":803,"title":804,"description":805},"\u002Fdocs\u002Fapi\u002Fkit\u002Fplugins","Plugins","Nuxt Kit 提供了一系列工具，帮助你创建和使用插件。你可以使用这些函数向你的模块添加插件或插件模板。",{"path":807,"title":330,"description":808},"\u002Fdocs\u002Fapi\u002Fadvanced\u002Fhooks","Nuxt 提供了一套强大的钩子系统，可以通过钩子扩展几乎各个方面。",{"path":810,"title":811,"description":812},"\u002Fdocs\u002Fapi\u002Fadvanced\u002Fimport-meta","Import meta","使用 `import.meta` 了解你的代码运行在何处。",{"path":814,"title":815,"description":816},"\u002Fdocs\u002Fapi\u002Fnuxt-config","Nuxt 配置","发现你可以在 nuxt.config.ts 文件中使用的所有选项。",{"path":818,"title":819,"description":820},"\u002Fdocs\u002Fapi","Nuxt API 参考","探索所有 Nuxt 内部机制：组件、组合式函数、工具函数、命令等等。",{"path":822,"title":823,"description":824},"\u002Fdocs\u002Fcommunity\u002Fgetting-help","获取帮助","我们是一个友好的开发者社区，很乐意提供帮助。",{"path":826,"title":827,"description":828},"\u002Fdocs\u002Fcommunity\u002Freporting-bugs","报告 Bug","开源中最有价值的角色之一，就是花时间把 bug 报告得清楚明白。",{"path":830,"title":831,"description":832},"\u002Fdocs\u002Fcommunity\u002Fcontribution","贡献","Nuxt 是一个社区项目——因此我们欢迎各种形式的贡献！❤️",{"path":834,"title":835,"description":836},"\u002Fdocs\u002Fcommunity\u002Fframework-contribution","框架贡献","关于向框架仓库贡献的一些具体要点。",{"path":838,"title":839,"description":840},"\u002Fdocs\u002Fcommunity\u002Froadmap","路线图","Nuxt 在不断发展，新功能和模块一直在增加。",{"path":842,"title":843,"description":844},"\u002Fdocs\u002Fcommunity\u002Fchangelog","发布","发现 Nuxt 及 Nuxt 官方模块的最新发布。",{"path":846,"title":847,"description":848},"\u002Fdocs\u002Fbridge\u002Foverview","概述","缩小与 Nuxt 3 的差异，并减轻迁移到 Nuxt 3 的负担。",{"path":850,"title":14,"description":851},"\u002Fdocs\u002Fbridge\u002Fconfiguration","了解如何根据你的需求配置 Nuxt Bridge。",{"path":853,"title":222,"description":854},"\u002Fdocs\u002Fbridge\u002Ftypescript","了解如何在 Nuxt Bridge 中使用 TypeScript。",{"path":856,"title":857,"description":858},"\u002Fdocs\u002Fbridge\u002Fbridge-composition-api","旧版 Composition API","了解如何使用 Nuxt Bridge 迁移到 Composition API。",{"path":860,"title":861,"description":862},"\u002Fdocs\u002Fbridge\u002Fplugins-and-middleware","插件和中间件","了解如何从 Nuxt 2 迁移到 Nuxt Bridge 的新插件和中间件。",{"path":864,"title":865,"description":866},"\u002Fdocs\u002Fbridge\u002Fnuxt3-compatible-api","新的 Composition API","Nuxt Bridge 实现了与 Nuxt 3 兼容的组合式函数。",{"path":868,"title":869,"description":870},"\u002Fdocs\u002Fbridge\u002Fmeta","Meta 标签","了解如何从 Nuxt 2 迁移到 Nuxt Bridge 的新 meta 标签。",{"path":872,"title":322,"description":873},"\u002Fdocs\u002Fbridge\u002Fruntime-config","Nuxt 提供了一个运行时配置 API，用于在应用中暴露配置和密钥。",{"path":875,"title":749,"description":876},"\u002Fdocs\u002Fbridge\u002Fnitro","通过 Nuxt Bridge 为你的 Nuxt 2 应用激活 Nitro。",{"path":878,"title":879,"description":880},"\u002Fdocs\u002Fbridge\u002Fvite","Vite","通过 Nuxt Bridge 为你的 Nuxt 2 应用激活 Vite。",{"path":882,"title":847,"description":883},"\u002Fdocs\u002Fmigration\u002Foverview","Nuxt 3 是对 Nuxt 2 的完整重写，并且基于一套全新的底层技术。",{"path":885,"title":886,"description":887},"\u002Fdocs\u002Fmigration\u002Fbundling","构建工具","了解如何从 Nuxt 2 迁移到 Nuxt 3 的构建工具。",{"path":889,"title":890,"description":891},"\u002Fdocs\u002Fmigration\u002Fserver","服务器","了解如何从 Nuxt 2 迁移到 Nuxt 3 的服务器。",{"path":893,"title":14,"description":894},"\u002Fdocs\u002Fmigration\u002Fconfiguration","了解如何从 Nuxt 2 迁移到 Nuxt 3 的新配置。",{"path":896,"title":214,"description":897},"\u002Fdocs\u002Fmigration\u002Fmodule-authors","了解如何从 Nuxt 2 迁移到 Nuxt 3 模块。",{"path":899,"title":206,"description":900},"\u002Fdocs\u002Fmigration\u002Fauto-imports","Nuxt 3 采用最小摩擦的方式，即在任何可能的地方自动导入组件和组合式函数。",{"path":902,"title":869,"description":903},"\u002Fdocs\u002Fmigration\u002Fmeta","管理你的 meta 标签，从 Nuxt 2 到 Nuxt 3。",{"path":905,"title":861,"description":906},"\u002Fdocs\u002Fmigration\u002Fplugins-and-middleware","了解如何从 Nuxt 2 迁移到 Nuxt 3 的插件和中间件。",{"path":908,"title":909,"description":910},"\u002Fdocs\u002Fmigration\u002Fpages-and-layouts","页面和布局","了解如何从 Nuxt 2 迁移到 Nuxt 3 的页面和布局。",{"path":912,"title":913,"description":914},"\u002Fdocs\u002Fmigration\u002Fcomponent-options","组件选项","了解如何从 Nuxt 2 的组件选项迁移到 Nuxt 3 的组合式函数。",{"path":916,"title":322,"description":917},"\u002Fdocs\u002Fmigration\u002Fruntime-config","了解如何从 Nuxt 2 迁移到 Nuxt 3 的运行时配置。",{"path":919,"title":920,"description":921},"\u002Fdocs\u002Freadme","Nuxt 文档","本仓库包含 Nuxt 的文档，托管于 https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fintroduction",{"path":923,"title":924,"description":925},"\u002Fdocs\u002Ferrors\u002Fb5001","NUXT_B5001","缺少 compatibilityDate (兼容性日期)",{"path":927,"title":928,"description":929},"\u002Fdocs\u002Ferrors\u002Fb5003","NUXT_B5003","保留的 runtimeConfig.app 命名空间",{"path":931,"title":932,"description":933},"\u002Fdocs\u002Ferrors\u002Fb5004","NUXT_B5004","不支持外部配置文件",{"path":935,"title":936,"description":937},"\u002Fdocs\u002Ferrors\u002Fe1001","NUXT_E1001","在 Nuxt 上下文之外调用了组合式函数。",{"path":939,"title":940,"description":941},"\u002Fdocs\u002Ferrors\u002Fe1006","NUXT_E1006","onPrehydrate 未被构建流水线处理。",{"path":943,"title":944,"description":945},"\u002Fdocs\u002Ferrors\u002Fe1007","NUXT_E1007","编译期提示辅助函数在运行时被调用。",{"path":947,"title":948,"description":949},"\u002Fdocs\u002Ferrors\u002Fe2001","NUXT_E2001","外部导航未设置 external: true。",{"path":951,"title":952,"description":953},"\u002Fdocs\u002Ferrors\u002Fe2002","NUXT_E2002","使用了危险协议的导航。",{"path":955,"title":956,"description":957},"\u002Fdocs\u002Ferrors\u002Fe2003","NUXT_E2003","abortNavigation() 在中间件之外被调用。",{"path":959,"title":960,"description":961},"\u002Fdocs\u002Ferrors\u002Fe2004","NUXT_E2004","未知的路由中间件。",{"path":963,"title":964,"description":965},"\u002Fdocs\u002Ferrors\u002Fe2005","NUXT_E2005","在中间件内调用了 useRoute。",{"path":967,"title":968,"description":969},"\u002Fdocs\u002Ferrors\u002Fe2007","NUXT_E2007","在组件中于服务端调用了 setPageLayout。",{"path":971,"title":972,"description":973},"\u002Fdocs\u002Ferrors\u002Fe3001","NUXT_E3001","useFetch 的请求 URL 以 \"\u002F\u002F\" 开头。",{"path":975,"title":976,"description":977},"\u002Fdocs\u002Ferrors\u002Fe3008","NUXT_E3008","useAsyncData 的 key 必须是非空字符串。",{"path":979,"title":980,"description":981},"\u002Fdocs\u002Ferrors\u002Fe3009","NUXT_E3009","useAsyncData 的处理函数必须是一个函数。",{"path":983,"title":984,"description":985},"\u002Fdocs\u002Ferrors\u002Fe4012","NUXT_E4012","无法解析 island（岛）响应。",{"path":987,"title":988,"description":989},"\u002Fdocs\u002Ferrors\u002Fe4016","NUXT_E4016","嵌套页面无法显示，因为其父页面没有渲染 \u003CNuxtPage \u002F>。",{"path":991,"title":992,"description":993},"\u002Fdocs\u002Ferrors\u002Fe5001","NUXT_E5001","应用清单（app manifest）未启用。",{"path":995,"title":996,"description":997},"\u002Fdocs\u002Ferrors\u002Fe6001","NUXT_E6001","缺少 Unhead 实例。",{"path":999,"title":1000,"description":1001},"\u002Fdocs\u002Ferrors\u002Fe7001","NUXT_E7001","Payload URL 包含主机名。",{"path":1003,"title":1004,"description":1005},"\u002Fdocs\u002Ferrors\u002Fe7007","NUXT_E7007","useState 的初始化值必须是一个函数。",{"path":1007,"title":1008,"description":1009},"\u002Fdocs\u002Ferrors\u002Fe7008","NUXT_E7008","callOnce 的 fn 必须是一个函数。",{"path":1011,"title":1012,"description":1013},"\u002Fdocs\u002Ferrors\u002Fe7009","NUXT_E7009","useState 的 key 必须是一个字符串。",{"path":1015,"title":1016,"description":1017},"\u002Fdocs\u002Ferrors\u002Fe7010","NUXT_E7010","callOnce 的 key 必须是一个字符串。",{"id":1019,"title":749,"body":1020,"description":750,"extension":5082,"meta":5083,"navigation":5090,"path":748,"seo":5091,"stem":5092,"__hash__":5093},"docs\u002Fdocs\u002F4.api\u002F5.kit\u002F12.nitro.md",{"type":1021,"value":1022,"toc":5032},"minimark",[1023,1048,1054,1057,1061,1280,1283,1314,1317,1323,1440,1443,1447,1453,1456,1605,1695,1697,1703,1720,1725,1728,1731,1922,1925,1984,1987,1991,2041,2044,2047,2050,2331,2336,2339,2342,2353,2356,2359,2362,2512,2515,2533,2538,2541,2544,2555,2557,2567,2570,2686,2689,2716,2719,2752,2755,2757,2867,3081,3083,3088,3091,3094,3288,3291,3325,3328,3370,3376,3379,3381,3400,3403,3613,3616,3649,3652,3658,3820,3826,3829,3832,3992,3995,4046,4049,4114,4117,4122,4124,4278,4329,4331,4338,4430,4436,4443,4445,4462,4465,4623,4626,4671,4674,4733,4736,4741,4743,4897,4931,4933,4939,5028],[1024,1025,1026,1027,1031,1032,1035,1036,1039,1040,1043,1044,1047],"p",{},"Nitro 是一个用于构建超快 Web 服务器的开源 TypeScript 框架。Nuxt 使用 Nitro 作为其服务器引擎。你可以使用 ",[1028,1029,1030],"code",{},"useNitro"," 访问 Nitro 实例，",[1028,1033,1034],{},"addServerHandler"," 添加服务器处理器，",[1028,1037,1038],{},"addDevServerHandler"," 添加仅在开发模式下使用的服务器处理器，",[1028,1041,1042],{},"addServerPlugin"," 添加插件以扩展 Nitro 的运行时行为，以及 ",[1028,1045,1046],{},"addPrerenderRoutes"," 添加将由 Nitro 预渲染的路由。",[1049,1050,1052],"h2",{"id":1051},"addserverhandler",[1028,1053,1034],{},[1024,1055,1056],{},"添加一个 Nitro 服务器处理器。如果你想创建服务器中间件或自定义路由，可以使用它。",[1058,1059,1060],"h3",{"id":1060},"用法",[1062,1063,1068],"pre",{"className":1064,"code":1065,"language":1066,"meta":1067,"style":354},"language-ts shiki shiki-themes material-theme-lighter github-dark material-theme-palenight","import { addServerHandler, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  setup (options) {\n    const { resolve } = createResolver(import.meta.url)\n\n    addServerHandler({\n      route: '\u002Frobots.txt',\n      handler: resolve('.\u002Fruntime\u002Frobots.get'),\n    })\n  },\n})\n","ts","twoslash",[1028,1069,1070,1115,1122,1140,1160,1200,1205,1215,1235,1258,1266,1272],{"__ignoreMap":354},[1071,1072,1075,1079,1083,1087,1090,1093,1095,1098,1101,1104,1108,1112],"span",{"class":1073,"line":1074},"line",1,[1071,1076,1078],{"class":1077},"szyBz","import",[1071,1080,1082],{"class":1081},"sF54B"," {",[1071,1084,1086],{"class":1085},"smVNa"," addServerHandler",[1071,1088,1089],{"class":1081},",",[1071,1091,1092],{"class":1085}," createResolver",[1071,1094,1089],{"class":1081},[1071,1096,1097],{"class":1085}," defineNuxtModule",[1071,1099,1100],{"class":1081}," }",[1071,1102,1103],{"class":1077}," from",[1071,1105,1107],{"class":1106},"s0jeK"," '",[1071,1109,1111],{"class":1110},"s-Aze","@nuxt\u002Fkit",[1071,1113,1114],{"class":1106},"'\n",[1071,1116,1118],{"class":1073,"line":1117},2,[1071,1119,1121],{"emptyLinePlaceholder":1120},true,"\n",[1071,1123,1125,1128,1131,1134,1137],{"class":1073,"line":1124},3,[1071,1126,1127],{"class":1077},"export",[1071,1129,1130],{"class":1077}," default",[1071,1132,1097],{"class":1133},"srJn9",[1071,1135,1136],{"class":1085},"(",[1071,1138,1139],{"class":1081},"{\n",[1071,1141,1143,1147,1150,1154,1157],{"class":1073,"line":1142},4,[1071,1144,1146],{"class":1145},"syA7L","  setup",[1071,1148,1149],{"class":1081}," (",[1071,1151,1153],{"class":1152},"ssIVr","options",[1071,1155,1156],{"class":1081},")",[1071,1158,1159],{"class":1081}," {\n",[1071,1161,1163,1167,1169,1173,1175,1179,1181,1184,1186,1189,1192,1194,1197],{"class":1073,"line":1162},5,[1071,1164,1166],{"class":1165},"sV7Px","    const",[1071,1168,1082],{"class":1081},[1071,1170,1172],{"class":1171},"sJTDI"," resolve",[1071,1174,1100],{"class":1081},[1071,1176,1178],{"class":1177},"sXPRQ"," =",[1071,1180,1092],{"class":1133},[1071,1182,1136],{"class":1183},"sOtFm",[1071,1185,1078],{"class":1077},[1071,1187,1188],{"class":1081},".",[1071,1190,1191],{"class":1171},"meta",[1071,1193,1188],{"class":1081},[1071,1195,1196],{"class":1085},"url",[1071,1198,1199],{"class":1183},")\n",[1071,1201,1203],{"class":1073,"line":1202},6,[1071,1204,1121],{"emptyLinePlaceholder":1120},[1071,1206,1208,1211,1213],{"class":1073,"line":1207},7,[1071,1209,1210],{"class":1133},"    addServerHandler",[1071,1212,1136],{"class":1183},[1071,1214,1139],{"class":1081},[1071,1216,1218,1221,1224,1226,1229,1232],{"class":1073,"line":1217},8,[1071,1219,1220],{"class":1183},"      route",[1071,1222,1223],{"class":1081},":",[1071,1225,1107],{"class":1106},[1071,1227,1228],{"class":1110},"\u002Frobots.txt",[1071,1230,1231],{"class":1106},"'",[1071,1233,1234],{"class":1081},",\n",[1071,1236,1238,1241,1243,1245,1247,1249,1252,1254,1256],{"class":1073,"line":1237},9,[1071,1239,1240],{"class":1183},"      handler",[1071,1242,1223],{"class":1081},[1071,1244,1172],{"class":1133},[1071,1246,1136],{"class":1183},[1071,1248,1231],{"class":1106},[1071,1250,1251],{"class":1110},".\u002Fruntime\u002Frobots.get",[1071,1253,1231],{"class":1106},[1071,1255,1156],{"class":1183},[1071,1257,1234],{"class":1081},[1071,1259,1261,1264],{"class":1073,"line":1260},10,[1071,1262,1263],{"class":1081},"    }",[1071,1265,1199],{"class":1183},[1071,1267,1269],{"class":1073,"line":1268},11,[1071,1270,1271],{"class":1081},"  },\n",[1071,1273,1275,1278],{"class":1073,"line":1274},12,[1071,1276,1277],{"class":1081},"}",[1071,1279,1199],{"class":1085},[1058,1281,1282],{"id":1282},"类型",[1062,1284,1286],{"className":1064,"code":1285,"language":1066,"meta":354,"style":354},"function addServerHandler (handler: NitroEventHandler): void\n",[1028,1287,1288],{"__ignoreMap":354},[1071,1289,1290,1293,1295,1297,1300,1302,1306,1308,1310],{"class":1073,"line":1074},[1071,1291,1292],{"class":1165},"function",[1071,1294,1086],{"class":1133},[1071,1296,1149],{"class":1081},[1071,1298,1299],{"class":1152},"handler",[1071,1301,1223],{"class":1177},[1071,1303,1305],{"class":1304},"sJK67"," NitroEventHandler",[1071,1307,1156],{"class":1081},[1071,1309,1223],{"class":1177},[1071,1311,1313],{"class":1312},"seQRr"," void\n",[1058,1315,1316],{"id":1316},"参数",[1024,1318,1319,1322],{},[1320,1321,1299],"strong",{},"：一个包含以下属性的处理器对象：",[1324,1325,1326,1344],"table",{},[1327,1328,1329],"thead",{},[1330,1331,1332,1336,1338,1341],"tr",{},[1333,1334,1335],"th",{},"属性",[1333,1337,1282],{},[1333,1339,1340],{},"必填",[1333,1342,1343],{},"描述",[1345,1346,1347,1367,1386,1404,1422],"tbody",{},[1330,1348,1349,1354,1359,1364],{},[1350,1351,1352],"td",{},[1028,1353,1299],{},[1350,1355,1356],{},[1028,1357,1358],{},"string",[1350,1360,1361],{},[1028,1362,1363],{},"true",[1350,1365,1366],{},"事件处理器的路径。",[1330,1368,1369,1374,1378,1383],{},[1350,1370,1371],{},[1028,1372,1373],{},"route",[1350,1375,1376],{},[1028,1377,1358],{},[1350,1379,1380],{},[1028,1381,1382],{},"false",[1350,1384,1385],{},"路径前缀或路由。如果使用空字符串，将被作为中间件使用。",[1330,1387,1388,1392,1397,1401],{},[1350,1389,1390],{},[1028,1391,102],{},[1350,1393,1394],{},[1028,1395,1396],{},"boolean",[1350,1398,1399],{},[1028,1400,1382],{},[1350,1402,1403],{},"指定这是一个中间件处理器。中间件会在每个路由上被调用，通常应不返回任何内容以传递给下一个处理器。",[1330,1405,1406,1411,1415,1419],{},[1350,1407,1408],{},[1028,1409,1410],{},"lazy",[1350,1412,1413],{},[1028,1414,1396],{},[1350,1416,1417],{},[1028,1418,1382],{},[1350,1420,1421],{},"使用惰性加载来导入处理器。当你只想按需加载处理器时这很有用。",[1330,1423,1424,1429,1433,1437],{},[1350,1425,1426],{},[1028,1427,1428],{},"method",[1350,1430,1431],{},[1028,1432,1358],{},[1350,1434,1435],{},[1028,1436,1382],{},[1350,1438,1439],{},"路由方法匹配器。如果处理器名称包含方法名，它会被用作默认值。",[1058,1441,1442],{"id":1442},"示例",[1444,1445,1446],"h4",{"id":1446},"基础用法",[1024,1448,1449,1450,1452],{},"你可以使用 ",[1028,1451,1034],{}," 从你的模块添加一个服务器处理器。",[1454,1455],"code-group",{},[1062,1457,1459],{"className":1064,"code":1065,"filename":1458,"language":1066,"meta":1067,"style":354},"module.ts",[1028,1460,1461,1487,1491,1503,1515,1543,1547,1555,1569,1589,1595,1599],{"__ignoreMap":354},[1071,1462,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485],{"class":1073,"line":1074},[1071,1464,1078],{"class":1077},[1071,1466,1082],{"class":1081},[1071,1468,1086],{"class":1085},[1071,1470,1089],{"class":1081},[1071,1472,1092],{"class":1085},[1071,1474,1089],{"class":1081},[1071,1476,1097],{"class":1085},[1071,1478,1100],{"class":1081},[1071,1480,1103],{"class":1077},[1071,1482,1107],{"class":1106},[1071,1484,1111],{"class":1110},[1071,1486,1114],{"class":1106},[1071,1488,1489],{"class":1073,"line":1117},[1071,1490,1121],{"emptyLinePlaceholder":1120},[1071,1492,1493,1495,1497,1499,1501],{"class":1073,"line":1124},[1071,1494,1127],{"class":1077},[1071,1496,1130],{"class":1077},[1071,1498,1097],{"class":1133},[1071,1500,1136],{"class":1085},[1071,1502,1139],{"class":1081},[1071,1504,1505,1507,1509,1511,1513],{"class":1073,"line":1142},[1071,1506,1146],{"class":1145},[1071,1508,1149],{"class":1081},[1071,1510,1153],{"class":1152},[1071,1512,1156],{"class":1081},[1071,1514,1159],{"class":1081},[1071,1516,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541],{"class":1073,"line":1162},[1071,1518,1166],{"class":1165},[1071,1520,1082],{"class":1081},[1071,1522,1172],{"class":1171},[1071,1524,1100],{"class":1081},[1071,1526,1178],{"class":1177},[1071,1528,1092],{"class":1133},[1071,1530,1136],{"class":1183},[1071,1532,1078],{"class":1077},[1071,1534,1188],{"class":1081},[1071,1536,1191],{"class":1171},[1071,1538,1188],{"class":1081},[1071,1540,1196],{"class":1085},[1071,1542,1199],{"class":1183},[1071,1544,1545],{"class":1073,"line":1202},[1071,1546,1121],{"emptyLinePlaceholder":1120},[1071,1548,1549,1551,1553],{"class":1073,"line":1207},[1071,1550,1210],{"class":1133},[1071,1552,1136],{"class":1183},[1071,1554,1139],{"class":1081},[1071,1556,1557,1559,1561,1563,1565,1567],{"class":1073,"line":1217},[1071,1558,1220],{"class":1183},[1071,1560,1223],{"class":1081},[1071,1562,1107],{"class":1106},[1071,1564,1228],{"class":1110},[1071,1566,1231],{"class":1106},[1071,1568,1234],{"class":1081},[1071,1570,1571,1573,1575,1577,1579,1581,1583,1585,1587],{"class":1073,"line":1237},[1071,1572,1240],{"class":1183},[1071,1574,1223],{"class":1081},[1071,1576,1172],{"class":1133},[1071,1578,1136],{"class":1183},[1071,1580,1231],{"class":1106},[1071,1582,1251],{"class":1110},[1071,1584,1231],{"class":1106},[1071,1586,1156],{"class":1183},[1071,1588,1234],{"class":1081},[1071,1590,1591,1593],{"class":1073,"line":1260},[1071,1592,1263],{"class":1081},[1071,1594,1199],{"class":1183},[1071,1596,1597],{"class":1073,"line":1268},[1071,1598,1271],{"class":1081},[1071,1600,1601,1603],{"class":1073,"line":1274},[1071,1602,1277],{"class":1081},[1071,1604,1199],{"class":1085},[1062,1606,1609],{"className":1064,"code":1607,"filename":1608,"language":1066,"meta":1067,"style":354},"import { defineEventHandler } from 'nitro\u002Fh3'\n\nexport default defineEventHandler(() => {\n  return {\n    body: `User-agent: *\\nDisallow: \u002F`,\n  }\n})\n","runtime\u002Frobots.get.ts",[1028,1610,1611,1631,1635,1653,1660,1684,1689],{"__ignoreMap":354},[1071,1612,1613,1615,1617,1620,1622,1624,1626,1629],{"class":1073,"line":1074},[1071,1614,1078],{"class":1077},[1071,1616,1082],{"class":1081},[1071,1618,1619],{"class":1085}," defineEventHandler",[1071,1621,1100],{"class":1081},[1071,1623,1103],{"class":1077},[1071,1625,1107],{"class":1106},[1071,1627,1628],{"class":1110},"nitro\u002Fh3",[1071,1630,1114],{"class":1106},[1071,1632,1633],{"class":1073,"line":1117},[1071,1634,1121],{"emptyLinePlaceholder":1120},[1071,1636,1637,1639,1641,1643,1645,1648,1651],{"class":1073,"line":1124},[1071,1638,1127],{"class":1077},[1071,1640,1130],{"class":1077},[1071,1642,1619],{"class":1133},[1071,1644,1136],{"class":1085},[1071,1646,1647],{"class":1081},"()",[1071,1649,1650],{"class":1165}," =>",[1071,1652,1159],{"class":1081},[1071,1654,1655,1658],{"class":1073,"line":1142},[1071,1656,1657],{"class":1077},"  return",[1071,1659,1159],{"class":1081},[1071,1661,1662,1665,1667,1670,1673,1676,1679,1682],{"class":1073,"line":1162},[1071,1663,1664],{"class":1183},"    body",[1071,1666,1223],{"class":1081},[1071,1668,1669],{"class":1106}," `",[1071,1671,1672],{"class":1110},"User-agent: *",[1071,1674,1675],{"class":1171},"\\n",[1071,1677,1678],{"class":1110},"Disallow: \u002F",[1071,1680,1681],{"class":1106},"`",[1071,1683,1234],{"class":1081},[1071,1685,1686],{"class":1073,"line":1202},[1071,1687,1688],{"class":1081},"  }\n",[1071,1690,1691,1693],{"class":1073,"line":1207},[1071,1692,1277],{"class":1081},[1071,1694,1199],{"class":1085},[1024,1696,1223],{},[1024,1698,1699,1700,1702],{},"当你访问 ",[1028,1701,1228],{}," 时，它会返回如下响应：",[1062,1704,1708],{"className":1705,"code":1706,"language":1707,"meta":354,"style":354},"language-txt shiki shiki-themes material-theme-lighter github-dark material-theme-palenight","User-agent: *\nDisallow: \u002F\n","txt",[1028,1709,1710,1715],{"__ignoreMap":354},[1071,1711,1712],{"class":1073,"line":1074},[1071,1713,1714],{},"User-agent: *\n",[1071,1716,1717],{"class":1073,"line":1117},[1071,1718,1719],{},"Disallow: \u002F\n",[1049,1721,1723],{"id":1722},"adddevserverhandler",[1028,1724,1038],{},[1024,1726,1727],{},"添加一个仅在开发模式下使用的 Nitro 服务器处理器。该处理器不会被包含在生产构建中。",[1058,1729,1060],{"id":1730},"用法-1",[1062,1732,1734],{"className":1064,"code":1733,"language":1066,"meta":1067,"style":354},"import { defineEventHandler } from 'nitro\u002Fh3'\nimport { addDevServerHandler, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  setup () {\n    addDevServerHandler({\n      handler: defineEventHandler(() => {\n        return {\n          body: `Response generated at ${new Date().toISOString()}`,\n        }\n      }),\n      route: '\u002F_handler',\n    })\n  },\n})\n",[1028,1735,1736,1754,1781,1785,1797,1806,1815,1831,1838,1874,1879,1888,1903,1910,1915],{"__ignoreMap":354},[1071,1737,1738,1740,1742,1744,1746,1748,1750,1752],{"class":1073,"line":1074},[1071,1739,1078],{"class":1077},[1071,1741,1082],{"class":1081},[1071,1743,1619],{"class":1085},[1071,1745,1100],{"class":1081},[1071,1747,1103],{"class":1077},[1071,1749,1107],{"class":1106},[1071,1751,1628],{"class":1110},[1071,1753,1114],{"class":1106},[1071,1755,1756,1758,1760,1763,1765,1767,1769,1771,1773,1775,1777,1779],{"class":1073,"line":1117},[1071,1757,1078],{"class":1077},[1071,1759,1082],{"class":1081},[1071,1761,1762],{"class":1085}," addDevServerHandler",[1071,1764,1089],{"class":1081},[1071,1766,1092],{"class":1085},[1071,1768,1089],{"class":1081},[1071,1770,1097],{"class":1085},[1071,1772,1100],{"class":1081},[1071,1774,1103],{"class":1077},[1071,1776,1107],{"class":1106},[1071,1778,1111],{"class":1110},[1071,1780,1114],{"class":1106},[1071,1782,1783],{"class":1073,"line":1124},[1071,1784,1121],{"emptyLinePlaceholder":1120},[1071,1786,1787,1789,1791,1793,1795],{"class":1073,"line":1142},[1071,1788,1127],{"class":1077},[1071,1790,1130],{"class":1077},[1071,1792,1097],{"class":1133},[1071,1794,1136],{"class":1085},[1071,1796,1139],{"class":1081},[1071,1798,1799,1801,1804],{"class":1073,"line":1162},[1071,1800,1146],{"class":1145},[1071,1802,1803],{"class":1081}," ()",[1071,1805,1159],{"class":1081},[1071,1807,1808,1811,1813],{"class":1073,"line":1202},[1071,1809,1810],{"class":1133},"    addDevServerHandler",[1071,1812,1136],{"class":1183},[1071,1814,1139],{"class":1081},[1071,1816,1817,1819,1821,1823,1825,1827,1829],{"class":1073,"line":1207},[1071,1818,1240],{"class":1183},[1071,1820,1223],{"class":1081},[1071,1822,1619],{"class":1133},[1071,1824,1136],{"class":1183},[1071,1826,1647],{"class":1081},[1071,1828,1650],{"class":1165},[1071,1830,1159],{"class":1081},[1071,1832,1833,1836],{"class":1073,"line":1217},[1071,1834,1835],{"class":1077},"        return",[1071,1837,1159],{"class":1081},[1071,1839,1840,1843,1845,1847,1850,1853,1856,1859,1862,1864,1867,1869,1872],{"class":1073,"line":1237},[1071,1841,1842],{"class":1183},"          body",[1071,1844,1223],{"class":1081},[1071,1846,1669],{"class":1106},[1071,1848,1849],{"class":1110},"Response generated at ",[1071,1851,1852],{"class":1106},"${",[1071,1854,1855],{"class":1177},"new",[1071,1857,1858],{"class":1133}," Date",[1071,1860,1647],{"class":1861},"szYI0",[1071,1863,1188],{"class":1106},[1071,1865,1866],{"class":1133},"toISOString",[1071,1868,1647],{"class":1861},[1071,1870,1871],{"class":1106},"}`",[1071,1873,1234],{"class":1081},[1071,1875,1876],{"class":1073,"line":1260},[1071,1877,1878],{"class":1081},"        }\n",[1071,1880,1881,1884,1886],{"class":1073,"line":1268},[1071,1882,1883],{"class":1081},"      }",[1071,1885,1156],{"class":1183},[1071,1887,1234],{"class":1081},[1071,1889,1890,1892,1894,1896,1899,1901],{"class":1073,"line":1274},[1071,1891,1220],{"class":1183},[1071,1893,1223],{"class":1081},[1071,1895,1107],{"class":1106},[1071,1897,1898],{"class":1110},"\u002F_handler",[1071,1900,1231],{"class":1106},[1071,1902,1234],{"class":1081},[1071,1904,1906,1908],{"class":1073,"line":1905},13,[1071,1907,1263],{"class":1081},[1071,1909,1199],{"class":1183},[1071,1911,1913],{"class":1073,"line":1912},14,[1071,1914,1271],{"class":1081},[1071,1916,1918,1920],{"class":1073,"line":1917},15,[1071,1919,1277],{"class":1081},[1071,1921,1199],{"class":1085},[1058,1923,1282],{"id":1924},"类型-1",[1062,1926,1928],{"className":1064,"code":1927,"language":1066,"meta":1067,"style":354},"\u002F\u002F @errors: 2391\nimport type { NitroDevEventHandler } from 'nitro\u002Ftypes'\n\u002F\u002F ---cut---\nfunction addDevServerHandler (handler: NitroDevEventHandler): void\n",[1028,1929,1930,1936,1959,1964],{"__ignoreMap":354},[1071,1931,1932],{"class":1073,"line":1074},[1071,1933,1935],{"class":1934},"sZqJ9","\u002F\u002F @errors: 2391\n",[1071,1937,1938,1940,1943,1945,1948,1950,1952,1954,1957],{"class":1073,"line":1117},[1071,1939,1078],{"class":1077},[1071,1941,1942],{"class":1077}," type",[1071,1944,1082],{"class":1081},[1071,1946,1947],{"class":1085}," NitroDevEventHandler",[1071,1949,1100],{"class":1081},[1071,1951,1103],{"class":1077},[1071,1953,1107],{"class":1106},[1071,1955,1956],{"class":1110},"nitro\u002Ftypes",[1071,1958,1114],{"class":1106},[1071,1960,1961],{"class":1073,"line":1124},[1071,1962,1963],{"class":1934},"\u002F\u002F ---cut---\n",[1071,1965,1966,1968,1970,1972,1974,1976,1978,1980,1982],{"class":1073,"line":1142},[1071,1967,1292],{"class":1165},[1071,1969,1762],{"class":1133},[1071,1971,1149],{"class":1081},[1071,1973,1299],{"class":1152},[1071,1975,1223],{"class":1177},[1071,1977,1947],{"class":1304},[1071,1979,1156],{"class":1081},[1071,1981,1223],{"class":1177},[1071,1983,1313],{"class":1312},[1058,1985,1316],{"id":1986},"参数-1",[1024,1988,1989,1322],{},[1320,1990,1299],{},[1324,1992,1993,2005],{},[1327,1994,1995],{},[1330,1996,1997,1999,2001,2003],{},[1333,1998,1335],{},[1333,2000,1282],{},[1333,2002,1340],{},[1333,2004,1343],{},[1345,2006,2007,2025],{},[1330,2008,2009,2013,2018,2022],{},[1350,2010,2011],{},[1028,2012,1299],{},[1350,2014,2015],{},[1028,2016,2017],{},"EventHandler",[1350,2019,2020],{},[1028,2021,1363],{},[1350,2023,2024],{},"事件处理器。",[1330,2026,2027,2031,2035,2039],{},[1350,2028,2029],{},[1028,2030,1373],{},[1350,2032,2033],{},[1028,2034,1358],{},[1350,2036,2037],{},[1028,2038,1382],{},[1350,2040,1385],{},[1058,2042,1442],{"id":2043},"示例-1",[1444,2045,1446],{"id":2046},"基础用法-1",[1024,2048,2049],{},"在某些情况下，你可能想专门为了开发目的创建一个服务器处理器，例如 Tailwind 配置查看器。",[1062,2051,2053],{"className":1064,"code":2052,"language":1066,"meta":354,"style":354},"import { joinURL } from 'ufo'\nimport { addDevServerHandler, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  async setup (options, nuxt) {\n    const route = joinURL(nuxt.options.app?.baseURL, '\u002F_tailwind')\n\n    \u002F\u002F @ts-expect-error - tailwind-config-viewer 没有正确的类型\n    const createServer = await import('tailwind-config-viewer\u002Fserver\u002Findex.js').then(r => r.default || r) as any\n    const viewerDevMiddleware = createServer({ tailwindConfigProvider: () => options, routerPrefix: route }).asMiddleware()\n\n    addDevServerHandler({ route, handler: viewerDevMiddleware })\n  },\n})\n",[1028,2054,2055,2075,2097,2101,2113,2134,2176,2180,2185,2245,2294,2298,2321,2325],{"__ignoreMap":354},[1071,2056,2057,2059,2061,2064,2066,2068,2070,2073],{"class":1073,"line":1074},[1071,2058,1078],{"class":1077},[1071,2060,1082],{"class":1081},[1071,2062,2063],{"class":1085}," joinURL",[1071,2065,1100],{"class":1081},[1071,2067,1103],{"class":1077},[1071,2069,1107],{"class":1106},[1071,2071,2072],{"class":1110},"ufo",[1071,2074,1114],{"class":1106},[1071,2076,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095],{"class":1073,"line":1117},[1071,2078,1078],{"class":1077},[1071,2080,1082],{"class":1081},[1071,2082,1762],{"class":1085},[1071,2084,1089],{"class":1081},[1071,2086,1097],{"class":1085},[1071,2088,1100],{"class":1081},[1071,2090,1103],{"class":1077},[1071,2092,1107],{"class":1106},[1071,2094,1111],{"class":1110},[1071,2096,1114],{"class":1106},[1071,2098,2099],{"class":1073,"line":1124},[1071,2100,1121],{"emptyLinePlaceholder":1120},[1071,2102,2103,2105,2107,2109,2111],{"class":1073,"line":1142},[1071,2104,1127],{"class":1077},[1071,2106,1130],{"class":1077},[1071,2108,1097],{"class":1133},[1071,2110,1136],{"class":1085},[1071,2112,1139],{"class":1081},[1071,2114,2115,2118,2121,2123,2125,2127,2130,2132],{"class":1073,"line":1162},[1071,2116,2117],{"class":1165},"  async",[1071,2119,2120],{"class":1145}," setup",[1071,2122,1149],{"class":1081},[1071,2124,1153],{"class":1152},[1071,2126,1089],{"class":1081},[1071,2128,2129],{"class":1152}," nuxt",[1071,2131,1156],{"class":1081},[1071,2133,1159],{"class":1081},[1071,2135,2136,2138,2141,2143,2145,2147,2150,2152,2154,2156,2159,2162,2165,2167,2169,2172,2174],{"class":1073,"line":1202},[1071,2137,1166],{"class":1165},[1071,2139,2140],{"class":1171}," route",[1071,2142,1178],{"class":1177},[1071,2144,2063],{"class":1133},[1071,2146,1136],{"class":1183},[1071,2148,2149],{"class":1085},"nuxt",[1071,2151,1188],{"class":1081},[1071,2153,1153],{"class":1085},[1071,2155,1188],{"class":1081},[1071,2157,2158],{"class":1085},"app",[1071,2160,2161],{"class":1081},"?.",[1071,2163,2164],{"class":1085},"baseURL",[1071,2166,1089],{"class":1081},[1071,2168,1107],{"class":1106},[1071,2170,2171],{"class":1110},"\u002F_tailwind",[1071,2173,1231],{"class":1106},[1071,2175,1199],{"class":1183},[1071,2177,2178],{"class":1073,"line":1207},[1071,2179,1121],{"emptyLinePlaceholder":1120},[1071,2181,2182],{"class":1073,"line":1217},[1071,2183,2184],{"class":1934},"    \u002F\u002F @ts-expect-error - tailwind-config-viewer 没有正确的类型\n",[1071,2186,2187,2189,2192,2194,2197,2200,2202,2204,2207,2209,2211,2213,2216,2218,2221,2223,2226,2228,2231,2234,2236,2239,2242],{"class":1073,"line":1237},[1071,2188,1166],{"class":1165},[1071,2190,2191],{"class":1171}," createServer",[1071,2193,1178],{"class":1177},[1071,2195,2196],{"class":1077}," await",[1071,2198,2199],{"class":1177}," import",[1071,2201,1136],{"class":1183},[1071,2203,1231],{"class":1106},[1071,2205,2206],{"class":1110},"tailwind-config-viewer\u002Fserver\u002Findex.js",[1071,2208,1231],{"class":1106},[1071,2210,1156],{"class":1183},[1071,2212,1188],{"class":1081},[1071,2214,2215],{"class":1133},"then",[1071,2217,1136],{"class":1183},[1071,2219,2220],{"class":1152},"r",[1071,2222,1650],{"class":1165},[1071,2224,2225],{"class":1085}," r",[1071,2227,1188],{"class":1081},[1071,2229,2230],{"class":1085},"default",[1071,2232,2233],{"class":1177}," ||",[1071,2235,2225],{"class":1085},[1071,2237,2238],{"class":1183},") ",[1071,2240,2241],{"class":1077},"as",[1071,2243,2244],{"class":1312}," any\n",[1071,2246,2247,2249,2252,2254,2256,2258,2261,2264,2266,2268,2270,2273,2275,2278,2280,2282,2284,2286,2288,2291],{"class":1073,"line":1260},[1071,2248,1166],{"class":1165},[1071,2250,2251],{"class":1171}," viewerDevMiddleware",[1071,2253,1178],{"class":1177},[1071,2255,2191],{"class":1133},[1071,2257,1136],{"class":1183},[1071,2259,2260],{"class":1081},"{",[1071,2262,2263],{"class":1133}," tailwindConfigProvider",[1071,2265,1223],{"class":1081},[1071,2267,1803],{"class":1081},[1071,2269,1650],{"class":1165},[1071,2271,2272],{"class":1085}," options",[1071,2274,1089],{"class":1081},[1071,2276,2277],{"class":1183}," routerPrefix",[1071,2279,1223],{"class":1081},[1071,2281,2140],{"class":1085},[1071,2283,1100],{"class":1081},[1071,2285,1156],{"class":1183},[1071,2287,1188],{"class":1081},[1071,2289,2290],{"class":1133},"asMiddleware",[1071,2292,2293],{"class":1183},"()\n",[1071,2295,2296],{"class":1073,"line":1268},[1071,2297,1121],{"emptyLinePlaceholder":1120},[1071,2299,2300,2302,2304,2306,2308,2310,2313,2315,2317,2319],{"class":1073,"line":1274},[1071,2301,1810],{"class":1133},[1071,2303,1136],{"class":1183},[1071,2305,2260],{"class":1081},[1071,2307,2140],{"class":1085},[1071,2309,1089],{"class":1081},[1071,2311,2312],{"class":1183}," handler",[1071,2314,1223],{"class":1081},[1071,2316,2251],{"class":1085},[1071,2318,1100],{"class":1081},[1071,2320,1199],{"class":1183},[1071,2322,2323],{"class":1073,"line":1905},[1071,2324,1271],{"class":1081},[1071,2326,2327,2329],{"class":1073,"line":1912},[1071,2328,1277],{"class":1081},[1071,2330,1199],{"class":1085},[1049,2332,2334],{"id":2333},"usenitro",[1028,2335,1030],{},[1024,2337,2338],{},"返回 Nitro 实例。",[2340,2341],"warning",{},[1024,2343,2344,2345,2348,2349,2352],{},"你只能在 ",[1028,2346,2347],{},"ready"," 钩子之后调用 ",[1028,2350,2351],{},"useNitro()","。\n:",[2354,2355],"note",{},[1024,2357,2358],{},"对 Nitro 实例配置的更改不会被应用。\n:",[1058,2360,1060],{"id":2361},"用法-2",[1062,2363,2365],{"className":1064,"code":2364,"language":1066,"meta":354,"style":354},"import { defineNuxtModule, useNitro } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  setup (options, nuxt) {\n    const resolver = createResolver(import.meta.url)\n\n    nuxt.hook('ready', () => {\n      const nitro = useNitro()\n      \u002F\u002F 对 Nitro 实例做一些处理\n    })\n  },\n})\n",[1028,2366,2367,2390,2394,2406,2422,2447,2451,2477,2491,2496,2502,2506],{"__ignoreMap":354},[1071,2368,2369,2371,2373,2375,2377,2380,2382,2384,2386,2388],{"class":1073,"line":1074},[1071,2370,1078],{"class":1077},[1071,2372,1082],{"class":1081},[1071,2374,1097],{"class":1085},[1071,2376,1089],{"class":1081},[1071,2378,2379],{"class":1085}," useNitro",[1071,2381,1100],{"class":1081},[1071,2383,1103],{"class":1077},[1071,2385,1107],{"class":1106},[1071,2387,1111],{"class":1110},[1071,2389,1114],{"class":1106},[1071,2391,2392],{"class":1073,"line":1117},[1071,2393,1121],{"emptyLinePlaceholder":1120},[1071,2395,2396,2398,2400,2402,2404],{"class":1073,"line":1124},[1071,2397,1127],{"class":1077},[1071,2399,1130],{"class":1077},[1071,2401,1097],{"class":1133},[1071,2403,1136],{"class":1085},[1071,2405,1139],{"class":1081},[1071,2407,2408,2410,2412,2414,2416,2418,2420],{"class":1073,"line":1142},[1071,2409,1146],{"class":1145},[1071,2411,1149],{"class":1081},[1071,2413,1153],{"class":1152},[1071,2415,1089],{"class":1081},[1071,2417,2129],{"class":1152},[1071,2419,1156],{"class":1081},[1071,2421,1159],{"class":1081},[1071,2423,2424,2426,2429,2431,2433,2435,2437,2439,2441,2443,2445],{"class":1073,"line":1162},[1071,2425,1166],{"class":1165},[1071,2427,2428],{"class":1171}," resolver",[1071,2430,1178],{"class":1177},[1071,2432,1092],{"class":1133},[1071,2434,1136],{"class":1183},[1071,2436,1078],{"class":1077},[1071,2438,1188],{"class":1081},[1071,2440,1191],{"class":1171},[1071,2442,1188],{"class":1081},[1071,2444,1196],{"class":1085},[1071,2446,1199],{"class":1183},[1071,2448,2449],{"class":1073,"line":1202},[1071,2450,1121],{"emptyLinePlaceholder":1120},[1071,2452,2453,2456,2458,2461,2463,2465,2467,2469,2471,2473,2475],{"class":1073,"line":1207},[1071,2454,2455],{"class":1085},"    nuxt",[1071,2457,1188],{"class":1081},[1071,2459,2460],{"class":1133},"hook",[1071,2462,1136],{"class":1183},[1071,2464,1231],{"class":1106},[1071,2466,2347],{"class":1110},[1071,2468,1231],{"class":1106},[1071,2470,1089],{"class":1081},[1071,2472,1803],{"class":1081},[1071,2474,1650],{"class":1165},[1071,2476,1159],{"class":1081},[1071,2478,2479,2482,2485,2487,2489],{"class":1073,"line":1217},[1071,2480,2481],{"class":1165},"      const",[1071,2483,2484],{"class":1171}," nitro",[1071,2486,1178],{"class":1177},[1071,2488,2379],{"class":1133},[1071,2490,2293],{"class":1183},[1071,2492,2493],{"class":1073,"line":1237},[1071,2494,2495],{"class":1934},"      \u002F\u002F 对 Nitro 实例做一些处理\n",[1071,2497,2498,2500],{"class":1073,"line":1260},[1071,2499,1263],{"class":1081},[1071,2501,1199],{"class":1183},[1071,2503,2504],{"class":1073,"line":1268},[1071,2505,1271],{"class":1081},[1071,2507,2508,2510],{"class":1073,"line":1274},[1071,2509,1277],{"class":1081},[1071,2511,1199],{"class":1085},[1058,2513,1282],{"id":2514},"类型-2",[1062,2516,2518],{"className":1064,"code":2517,"language":1066,"meta":354,"style":354},"function useNitro (): Nitro\n",[1028,2519,2520],{"__ignoreMap":354},[1071,2521,2522,2524,2526,2528,2530],{"class":1073,"line":1074},[1071,2523,1292],{"class":1165},[1071,2525,2379],{"class":1133},[1071,2527,1803],{"class":1081},[1071,2529,1223],{"class":1177},[1071,2531,2532],{"class":1304}," Nitro\n",[1049,2534,2536],{"id":2535},"addserverplugin",[1028,2537,1042],{},[1024,2539,2540],{},"添加插件以扩展 Nitro 的运行时行为。",[2542,2543],"tip",{},[1024,2545,2546,2547,2554],{},"你可以在 ",[2548,2549,2553],"a",{"href":2550,"rel":2551},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fplugins",[2552],"nofollow","Nitro 文档"," 中阅读更多关于 Nitro 插件的内容。\n:",[2340,2556],{},[1024,2558,2559,2560,2563,2564,2566],{},"有必要在你的插件文件中显式地从 `` 导入 ",[1028,2561,2562],{},"definePlugin","。同样的 requirement 也适用于诸如 ",[1028,2565,533],{}," 之类的实用工具。\n:",[1058,2568,1060],{"id":2569},"用法-3",[1062,2571,2573],{"className":1064,"code":2572,"language":1066,"meta":1067,"style":354},"import { addServerPlugin, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  setup () {\n    const { resolve } = createResolver(import.meta.url)\n    addServerPlugin(resolve('.\u002Fruntime\u002Fplugin.ts'))\n  },\n})\n",[1028,2574,2575,2602,2606,2618,2626,2654,2676,2680],{"__ignoreMap":354},[1071,2576,2577,2579,2581,2584,2586,2588,2590,2592,2594,2596,2598,2600],{"class":1073,"line":1074},[1071,2578,1078],{"class":1077},[1071,2580,1082],{"class":1081},[1071,2582,2583],{"class":1085}," addServerPlugin",[1071,2585,1089],{"class":1081},[1071,2587,1092],{"class":1085},[1071,2589,1089],{"class":1081},[1071,2591,1097],{"class":1085},[1071,2593,1100],{"class":1081},[1071,2595,1103],{"class":1077},[1071,2597,1107],{"class":1106},[1071,2599,1111],{"class":1110},[1071,2601,1114],{"class":1106},[1071,2603,2604],{"class":1073,"line":1117},[1071,2605,1121],{"emptyLinePlaceholder":1120},[1071,2607,2608,2610,2612,2614,2616],{"class":1073,"line":1124},[1071,2609,1127],{"class":1077},[1071,2611,1130],{"class":1077},[1071,2613,1097],{"class":1133},[1071,2615,1136],{"class":1085},[1071,2617,1139],{"class":1081},[1071,2619,2620,2622,2624],{"class":1073,"line":1142},[1071,2621,1146],{"class":1145},[1071,2623,1803],{"class":1081},[1071,2625,1159],{"class":1081},[1071,2627,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652],{"class":1073,"line":1162},[1071,2629,1166],{"class":1165},[1071,2631,1082],{"class":1081},[1071,2633,1172],{"class":1171},[1071,2635,1100],{"class":1081},[1071,2637,1178],{"class":1177},[1071,2639,1092],{"class":1133},[1071,2641,1136],{"class":1183},[1071,2643,1078],{"class":1077},[1071,2645,1188],{"class":1081},[1071,2647,1191],{"class":1171},[1071,2649,1188],{"class":1081},[1071,2651,1196],{"class":1085},[1071,2653,1199],{"class":1183},[1071,2655,2656,2659,2661,2664,2666,2668,2671,2673],{"class":1073,"line":1202},[1071,2657,2658],{"class":1133},"    addServerPlugin",[1071,2660,1136],{"class":1183},[1071,2662,2663],{"class":1133},"resolve",[1071,2665,1136],{"class":1183},[1071,2667,1231],{"class":1106},[1071,2669,2670],{"class":1110},".\u002Fruntime\u002Fplugin.ts",[1071,2672,1231],{"class":1106},[1071,2674,2675],{"class":1183},"))\n",[1071,2677,2678],{"class":1073,"line":1207},[1071,2679,1271],{"class":1081},[1071,2681,2682,2684],{"class":1073,"line":1217},[1071,2683,1277],{"class":1081},[1071,2685,1199],{"class":1085},[1058,2687,1282],{"id":2688},"类型-3",[1062,2690,2692],{"className":1064,"code":2691,"language":1066,"meta":354,"style":354},"function addServerPlugin (plugin: string): void\n",[1028,2693,2694],{"__ignoreMap":354},[1071,2695,2696,2698,2700,2702,2705,2707,2710,2712,2714],{"class":1073,"line":1074},[1071,2697,1292],{"class":1165},[1071,2699,2583],{"class":1133},[1071,2701,1149],{"class":1081},[1071,2703,2704],{"class":1152},"plugin",[1071,2706,1223],{"class":1177},[1071,2708,2709],{"class":1312}," string",[1071,2711,1156],{"class":1081},[1071,2713,1223],{"class":1177},[1071,2715,1313],{"class":1312},[1058,2717,1316],{"id":2718},"参数-2",[1324,2720,2721,2733],{},[1327,2722,2723],{},[1330,2724,2725,2727,2729,2731],{},[1333,2726,1335],{},[1333,2728,1282],{},[1333,2730,1340],{},[1333,2732,1343],{},[1345,2734,2735],{},[1330,2736,2737,2741,2745,2749],{},[1350,2738,2739],{},[1028,2740,2704],{},[1350,2742,2743],{},[1028,2744,1358],{},[1350,2746,2747],{},[1028,2748,1363],{},[1350,2750,2751],{},"插件的路径。该插件必须导出一个默认函数，该函数接收 Nitro 实例作为参数。",[1058,2753,1442],{"id":2754},"示例-2",[1454,2756],{},[1062,2758,2759],{"className":1064,"code":2572,"filename":1458,"language":1066,"meta":354,"style":354},[1028,2760,2761,2787,2791,2803,2811,2839,2857,2861],{"__ignoreMap":354},[1071,2762,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785],{"class":1073,"line":1074},[1071,2764,1078],{"class":1077},[1071,2766,1082],{"class":1081},[1071,2768,2583],{"class":1085},[1071,2770,1089],{"class":1081},[1071,2772,1092],{"class":1085},[1071,2774,1089],{"class":1081},[1071,2776,1097],{"class":1085},[1071,2778,1100],{"class":1081},[1071,2780,1103],{"class":1077},[1071,2782,1107],{"class":1106},[1071,2784,1111],{"class":1110},[1071,2786,1114],{"class":1106},[1071,2788,2789],{"class":1073,"line":1117},[1071,2790,1121],{"emptyLinePlaceholder":1120},[1071,2792,2793,2795,2797,2799,2801],{"class":1073,"line":1124},[1071,2794,1127],{"class":1077},[1071,2796,1130],{"class":1077},[1071,2798,1097],{"class":1133},[1071,2800,1136],{"class":1085},[1071,2802,1139],{"class":1081},[1071,2804,2805,2807,2809],{"class":1073,"line":1142},[1071,2806,1146],{"class":1145},[1071,2808,1803],{"class":1081},[1071,2810,1159],{"class":1081},[1071,2812,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837],{"class":1073,"line":1162},[1071,2814,1166],{"class":1165},[1071,2816,1082],{"class":1081},[1071,2818,1172],{"class":1171},[1071,2820,1100],{"class":1081},[1071,2822,1178],{"class":1177},[1071,2824,1092],{"class":1133},[1071,2826,1136],{"class":1183},[1071,2828,1078],{"class":1077},[1071,2830,1188],{"class":1081},[1071,2832,1191],{"class":1171},[1071,2834,1188],{"class":1081},[1071,2836,1196],{"class":1085},[1071,2838,1199],{"class":1183},[1071,2840,2841,2843,2845,2847,2849,2851,2853,2855],{"class":1073,"line":1202},[1071,2842,2658],{"class":1133},[1071,2844,1136],{"class":1183},[1071,2846,2663],{"class":1133},[1071,2848,1136],{"class":1183},[1071,2850,1231],{"class":1106},[1071,2852,2670],{"class":1110},[1071,2854,1231],{"class":1106},[1071,2856,2675],{"class":1183},[1071,2858,2859],{"class":1073,"line":1207},[1071,2860,1271],{"class":1081},[1071,2862,2863,2865],{"class":1073,"line":1217},[1071,2864,1277],{"class":1081},[1071,2866,1199],{"class":1085},[1062,2868,2871],{"className":1064,"code":2869,"filename":2870,"language":1066,"meta":354,"style":354},"import { definePlugin } from 'nitro'\n\nexport default definePlugin((nitroApp) => {\n  nitroApp.hooks.hook('request', (event) => {\n    console.log('on request', event.req.url)\n  })\n\n  nitroApp.hooks.hook('response', async (res) => {\n    console.log('on response', await res.text())\n  })\n})\n","runtime\u002Fplugin.ts",[1028,2872,2873,2893,2897,2918,2954,2989,2996,3000,3037,3069,3075],{"__ignoreMap":354},[1071,2874,2875,2877,2879,2882,2884,2886,2888,2891],{"class":1073,"line":1074},[1071,2876,1078],{"class":1077},[1071,2878,1082],{"class":1081},[1071,2880,2881],{"class":1085}," definePlugin",[1071,2883,1100],{"class":1081},[1071,2885,1103],{"class":1077},[1071,2887,1107],{"class":1106},[1071,2889,2890],{"class":1110},"nitro",[1071,2892,1114],{"class":1106},[1071,2894,2895],{"class":1073,"line":1117},[1071,2896,1121],{"emptyLinePlaceholder":1120},[1071,2898,2899,2901,2903,2905,2907,2909,2912,2914,2916],{"class":1073,"line":1124},[1071,2900,1127],{"class":1077},[1071,2902,1130],{"class":1077},[1071,2904,2881],{"class":1133},[1071,2906,1136],{"class":1085},[1071,2908,1136],{"class":1081},[1071,2910,2911],{"class":1152},"nitroApp",[1071,2913,1156],{"class":1081},[1071,2915,1650],{"class":1165},[1071,2917,1159],{"class":1081},[1071,2919,2920,2923,2925,2928,2930,2932,2934,2936,2939,2941,2943,2945,2948,2950,2952],{"class":1073,"line":1142},[1071,2921,2922],{"class":1085},"  nitroApp",[1071,2924,1188],{"class":1081},[1071,2926,2927],{"class":1085},"hooks",[1071,2929,1188],{"class":1081},[1071,2931,2460],{"class":1133},[1071,2933,1136],{"class":1183},[1071,2935,1231],{"class":1106},[1071,2937,2938],{"class":1110},"request",[1071,2940,1231],{"class":1106},[1071,2942,1089],{"class":1081},[1071,2944,1149],{"class":1081},[1071,2946,2947],{"class":1152},"event",[1071,2949,1156],{"class":1081},[1071,2951,1650],{"class":1165},[1071,2953,1159],{"class":1081},[1071,2955,2956,2959,2961,2964,2966,2968,2971,2973,2975,2978,2980,2983,2985,2987],{"class":1073,"line":1162},[1071,2957,2958],{"class":1085},"    console",[1071,2960,1188],{"class":1081},[1071,2962,2963],{"class":1133},"log",[1071,2965,1136],{"class":1183},[1071,2967,1231],{"class":1106},[1071,2969,2970],{"class":1110},"on request",[1071,2972,1231],{"class":1106},[1071,2974,1089],{"class":1081},[1071,2976,2977],{"class":1085}," event",[1071,2979,1188],{"class":1081},[1071,2981,2982],{"class":1085},"req",[1071,2984,1188],{"class":1081},[1071,2986,1196],{"class":1085},[1071,2988,1199],{"class":1183},[1071,2990,2991,2994],{"class":1073,"line":1202},[1071,2992,2993],{"class":1081},"  }",[1071,2995,1199],{"class":1183},[1071,2997,2998],{"class":1073,"line":1207},[1071,2999,1121],{"emptyLinePlaceholder":1120},[1071,3001,3002,3004,3006,3008,3010,3012,3014,3016,3019,3021,3023,3026,3028,3031,3033,3035],{"class":1073,"line":1217},[1071,3003,2922],{"class":1085},[1071,3005,1188],{"class":1081},[1071,3007,2927],{"class":1085},[1071,3009,1188],{"class":1081},[1071,3011,2460],{"class":1133},[1071,3013,1136],{"class":1183},[1071,3015,1231],{"class":1106},[1071,3017,3018],{"class":1110},"response",[1071,3020,1231],{"class":1106},[1071,3022,1089],{"class":1081},[1071,3024,3025],{"class":1165}," async",[1071,3027,1149],{"class":1081},[1071,3029,3030],{"class":1152},"res",[1071,3032,1156],{"class":1081},[1071,3034,1650],{"class":1165},[1071,3036,1159],{"class":1081},[1071,3038,3039,3041,3043,3045,3047,3049,3052,3054,3056,3058,3061,3063,3066],{"class":1073,"line":1237},[1071,3040,2958],{"class":1085},[1071,3042,1188],{"class":1081},[1071,3044,2963],{"class":1133},[1071,3046,1136],{"class":1183},[1071,3048,1231],{"class":1106},[1071,3050,3051],{"class":1110},"on response",[1071,3053,1231],{"class":1106},[1071,3055,1089],{"class":1081},[1071,3057,2196],{"class":1077},[1071,3059,3060],{"class":1085}," res",[1071,3062,1188],{"class":1081},[1071,3064,3065],{"class":1133},"text",[1071,3067,3068],{"class":1183},"())\n",[1071,3070,3071,3073],{"class":1073,"line":1260},[1071,3072,2993],{"class":1081},[1071,3074,1199],{"class":1183},[1071,3076,3077,3079],{"class":1073,"line":1268},[1071,3078,1277],{"class":1081},[1071,3080,1199],{"class":1085},[1024,3082,1223],{},[1049,3084,3086],{"id":3085},"addprerenderroutes",[1028,3087,1046],{},[1024,3089,3090],{},"添加将由 Nitro 预渲染的路由。",[1058,3092,1060],{"id":3093},"用法-4",[1062,3095,3097],{"className":1064,"code":3096,"language":1066,"meta":354,"style":354},"import { addPrerenderRoutes, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  meta: {\n    name: 'nuxt-sitemap',\n    configKey: 'sitemap',\n  },\n  defaults: {\n    sitemapUrl: '\u002Fsitemap.xml',\n    prerender: true,\n  },\n  setup (options) {\n    if (options.prerender) {\n      addPrerenderRoutes(options.sitemapUrl)\n    }\n  },\n})\n",[1028,3098,3099,3122,3126,3138,3147,3163,3179,3183,3192,3208,3221,3225,3237,3255,3271,3276,3281],{"__ignoreMap":354},[1071,3100,3101,3103,3105,3108,3110,3112,3114,3116,3118,3120],{"class":1073,"line":1074},[1071,3102,1078],{"class":1077},[1071,3104,1082],{"class":1081},[1071,3106,3107],{"class":1085}," addPrerenderRoutes",[1071,3109,1089],{"class":1081},[1071,3111,1097],{"class":1085},[1071,3113,1100],{"class":1081},[1071,3115,1103],{"class":1077},[1071,3117,1107],{"class":1106},[1071,3119,1111],{"class":1110},[1071,3121,1114],{"class":1106},[1071,3123,3124],{"class":1073,"line":1117},[1071,3125,1121],{"emptyLinePlaceholder":1120},[1071,3127,3128,3130,3132,3134,3136],{"class":1073,"line":1124},[1071,3129,1127],{"class":1077},[1071,3131,1130],{"class":1077},[1071,3133,1097],{"class":1133},[1071,3135,1136],{"class":1085},[1071,3137,1139],{"class":1081},[1071,3139,3140,3143,3145],{"class":1073,"line":1142},[1071,3141,3142],{"class":1183},"  meta",[1071,3144,1223],{"class":1081},[1071,3146,1159],{"class":1081},[1071,3148,3149,3152,3154,3156,3159,3161],{"class":1073,"line":1162},[1071,3150,3151],{"class":1183},"    name",[1071,3153,1223],{"class":1081},[1071,3155,1107],{"class":1106},[1071,3157,3158],{"class":1110},"nuxt-sitemap",[1071,3160,1231],{"class":1106},[1071,3162,1234],{"class":1081},[1071,3164,3165,3168,3170,3172,3175,3177],{"class":1073,"line":1202},[1071,3166,3167],{"class":1183},"    configKey",[1071,3169,1223],{"class":1081},[1071,3171,1107],{"class":1106},[1071,3173,3174],{"class":1110},"sitemap",[1071,3176,1231],{"class":1106},[1071,3178,1234],{"class":1081},[1071,3180,3181],{"class":1073,"line":1207},[1071,3182,1271],{"class":1081},[1071,3184,3185,3188,3190],{"class":1073,"line":1217},[1071,3186,3187],{"class":1183},"  defaults",[1071,3189,1223],{"class":1081},[1071,3191,1159],{"class":1081},[1071,3193,3194,3197,3199,3201,3204,3206],{"class":1073,"line":1237},[1071,3195,3196],{"class":1183},"    sitemapUrl",[1071,3198,1223],{"class":1081},[1071,3200,1107],{"class":1106},[1071,3202,3203],{"class":1110},"\u002Fsitemap.xml",[1071,3205,1231],{"class":1106},[1071,3207,1234],{"class":1081},[1071,3209,3210,3213,3215,3219],{"class":1073,"line":1260},[1071,3211,3212],{"class":1183},"    prerender",[1071,3214,1223],{"class":1081},[1071,3216,3218],{"class":3217},"si1Qm"," true",[1071,3220,1234],{"class":1081},[1071,3222,3223],{"class":1073,"line":1268},[1071,3224,1271],{"class":1081},[1071,3226,3227,3229,3231,3233,3235],{"class":1073,"line":1274},[1071,3228,1146],{"class":1145},[1071,3230,1149],{"class":1081},[1071,3232,1153],{"class":1152},[1071,3234,1156],{"class":1081},[1071,3236,1159],{"class":1081},[1071,3238,3239,3242,3244,3246,3248,3251,3253],{"class":1073,"line":1905},[1071,3240,3241],{"class":1077},"    if",[1071,3243,1149],{"class":1183},[1071,3245,1153],{"class":1085},[1071,3247,1188],{"class":1081},[1071,3249,3250],{"class":1085},"prerender",[1071,3252,2238],{"class":1183},[1071,3254,1139],{"class":1081},[1071,3256,3257,3260,3262,3264,3266,3269],{"class":1073,"line":1912},[1071,3258,3259],{"class":1133},"      addPrerenderRoutes",[1071,3261,1136],{"class":1183},[1071,3263,1153],{"class":1085},[1071,3265,1188],{"class":1081},[1071,3267,3268],{"class":1085},"sitemapUrl",[1071,3270,1199],{"class":1183},[1071,3272,3273],{"class":1073,"line":1917},[1071,3274,3275],{"class":1081},"    }\n",[1071,3277,3279],{"class":1073,"line":3278},16,[1071,3280,1271],{"class":1081},[1071,3282,3284,3286],{"class":1073,"line":3283},17,[1071,3285,1277],{"class":1081},[1071,3287,1199],{"class":1085},[1058,3289,1282],{"id":3290},"类型-4",[1062,3292,3294],{"className":1064,"code":3293,"language":1066,"meta":354,"style":354},"function addPrerenderRoutes (routes: string | string[]): void\n",[1028,3295,3296],{"__ignoreMap":354},[1071,3297,3298,3300,3302,3304,3307,3309,3311,3314,3316,3319,3321,3323],{"class":1073,"line":1074},[1071,3299,1292],{"class":1165},[1071,3301,3107],{"class":1133},[1071,3303,1149],{"class":1081},[1071,3305,3306],{"class":1152},"routes",[1071,3308,1223],{"class":1177},[1071,3310,2709],{"class":1312},[1071,3312,3313],{"class":1177}," |",[1071,3315,2709],{"class":1312},[1071,3317,3318],{"class":1085},"[]",[1071,3320,1156],{"class":1081},[1071,3322,1223],{"class":1177},[1071,3324,1313],{"class":1312},[1058,3326,1316],{"id":3327},"参数-3",[1324,3329,3330,3342],{},[1327,3331,3332],{},[1330,3333,3334,3336,3338,3340],{},[1333,3335,1335],{},[1333,3337,1282],{},[1333,3339,1340],{},[1333,3341,1343],{},[1345,3343,3344],{},[1330,3345,3346,3350,3363,3367],{},[1350,3347,3348],{},[1028,3349,3306],{},[1350,3351,3352],{},[1028,3353,3354,3357,3360],{"className":1064,"language":1066,"style":354},[1071,3355,3356],{"class":1085},"string ",[1071,3358,3359],{"class":1177},"|",[1071,3361,3362],{"class":1085}," string[]",[1350,3364,3365],{},[1028,3366,1363],{},[1350,3368,3369],{},"要预渲染的一个路由或一组路由。",[1049,3371,3373],{"id":3372},"addserverimports",[1028,3374,3375],{},"addServerImports",[1024,3377,3378],{},"向服务器添加导入。它让你的导入在 Nitro 中可用，而无需手动导入它们。",[2340,3380],{},[1024,3382,3383,3384,3389,3390,3396,3397,3399],{},"如果你想提供一个在服务器和客户端上下文中都能工作、并且可用于 ",[2548,3385,3386],{"href":153},[1028,3387,3388],{},"shared\u002F"," 目录的工具函数，那么这个函数必须从同一个源文件导入 ",[2548,3391,3393],{"href":3392},"\u002Fdocs\u002Fapi\u002Fkit\u002Fautoimports#addimports",[1028,3394,3395],{},"addImports"," 和 ",[1028,3398,3375],{},"，并且应具有相同的签名。该源文件不应导入任何上下文特定的内容（即 Nitro 上下文、Nuxt 应用上下文），否则可能会在类型检查时引发错误。\n:",[1058,3401,1060],{"id":3402},"用法-5",[1062,3404,3406],{"className":1064,"code":3405,"language":1066,"meta":1067,"style":354},"import { addServerImports, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  setup (options) {\n    const names = [\n      'useStoryblok',\n      'useStoryblokApi',\n      'useStoryblokBridge',\n      'renderRichText',\n      'RichTextSchema',\n    ]\n\n    names.forEach(name =>\n      addServerImports({ name, as: name, from: '@storyblok\u002Fvue' }),\n    )\n  },\n})\n",[1028,3407,3408,3435,3439,3451,3463,3475,3487,3498,3509,3520,3531,3536,3540,3558,3598,3603,3607],{"__ignoreMap":354},[1071,3409,3410,3412,3414,3417,3419,3421,3423,3425,3427,3429,3431,3433],{"class":1073,"line":1074},[1071,3411,1078],{"class":1077},[1071,3413,1082],{"class":1081},[1071,3415,3416],{"class":1085}," addServerImports",[1071,3418,1089],{"class":1081},[1071,3420,1092],{"class":1085},[1071,3422,1089],{"class":1081},[1071,3424,1097],{"class":1085},[1071,3426,1100],{"class":1081},[1071,3428,1103],{"class":1077},[1071,3430,1107],{"class":1106},[1071,3432,1111],{"class":1110},[1071,3434,1114],{"class":1106},[1071,3436,3437],{"class":1073,"line":1117},[1071,3438,1121],{"emptyLinePlaceholder":1120},[1071,3440,3441,3443,3445,3447,3449],{"class":1073,"line":1124},[1071,3442,1127],{"class":1077},[1071,3444,1130],{"class":1077},[1071,3446,1097],{"class":1133},[1071,3448,1136],{"class":1085},[1071,3450,1139],{"class":1081},[1071,3452,3453,3455,3457,3459,3461],{"class":1073,"line":1142},[1071,3454,1146],{"class":1145},[1071,3456,1149],{"class":1081},[1071,3458,1153],{"class":1152},[1071,3460,1156],{"class":1081},[1071,3462,1159],{"class":1081},[1071,3464,3465,3467,3470,3472],{"class":1073,"line":1162},[1071,3466,1166],{"class":1165},[1071,3468,3469],{"class":1171}," names",[1071,3471,1178],{"class":1177},[1071,3473,3474],{"class":1183}," [\n",[1071,3476,3477,3480,3483,3485],{"class":1073,"line":1202},[1071,3478,3479],{"class":1106},"      '",[1071,3481,3482],{"class":1110},"useStoryblok",[1071,3484,1231],{"class":1106},[1071,3486,1234],{"class":1081},[1071,3488,3489,3491,3494,3496],{"class":1073,"line":1207},[1071,3490,3479],{"class":1106},[1071,3492,3493],{"class":1110},"useStoryblokApi",[1071,3495,1231],{"class":1106},[1071,3497,1234],{"class":1081},[1071,3499,3500,3502,3505,3507],{"class":1073,"line":1217},[1071,3501,3479],{"class":1106},[1071,3503,3504],{"class":1110},"useStoryblokBridge",[1071,3506,1231],{"class":1106},[1071,3508,1234],{"class":1081},[1071,3510,3511,3513,3516,3518],{"class":1073,"line":1237},[1071,3512,3479],{"class":1106},[1071,3514,3515],{"class":1110},"renderRichText",[1071,3517,1231],{"class":1106},[1071,3519,1234],{"class":1081},[1071,3521,3522,3524,3527,3529],{"class":1073,"line":1260},[1071,3523,3479],{"class":1106},[1071,3525,3526],{"class":1110},"RichTextSchema",[1071,3528,1231],{"class":1106},[1071,3530,1234],{"class":1081},[1071,3532,3533],{"class":1073,"line":1268},[1071,3534,3535],{"class":1183},"    ]\n",[1071,3537,3538],{"class":1073,"line":1274},[1071,3539,1121],{"emptyLinePlaceholder":1120},[1071,3541,3542,3545,3547,3550,3552,3555],{"class":1073,"line":1905},[1071,3543,3544],{"class":1085},"    names",[1071,3546,1188],{"class":1081},[1071,3548,3549],{"class":1133},"forEach",[1071,3551,1136],{"class":1183},[1071,3553,3554],{"class":1152},"name",[1071,3556,3557],{"class":1165}," =>\n",[1071,3559,3560,3563,3565,3567,3570,3572,3575,3577,3579,3581,3583,3585,3587,3590,3592,3594,3596],{"class":1073,"line":1912},[1071,3561,3562],{"class":1133},"      addServerImports",[1071,3564,1136],{"class":1183},[1071,3566,2260],{"class":1081},[1071,3568,3569],{"class":1085}," name",[1071,3571,1089],{"class":1081},[1071,3573,3574],{"class":1183}," as",[1071,3576,1223],{"class":1081},[1071,3578,3569],{"class":1085},[1071,3580,1089],{"class":1081},[1071,3582,1103],{"class":1183},[1071,3584,1223],{"class":1081},[1071,3586,1107],{"class":1106},[1071,3588,3589],{"class":1110},"@storyblok\u002Fvue",[1071,3591,1231],{"class":1106},[1071,3593,1100],{"class":1081},[1071,3595,1156],{"class":1183},[1071,3597,1234],{"class":1081},[1071,3599,3600],{"class":1073,"line":1917},[1071,3601,3602],{"class":1183},"    )\n",[1071,3604,3605],{"class":1073,"line":3278},[1071,3606,1271],{"class":1081},[1071,3608,3609,3611],{"class":1073,"line":3283},[1071,3610,1277],{"class":1081},[1071,3612,1199],{"class":1085},[1058,3614,1282],{"id":3615},"类型-5",[1062,3617,3619],{"className":1064,"code":3618,"language":1066,"meta":354,"style":354},"function addServerImports (dirs: Import | Import[]): void\n",[1028,3620,3621],{"__ignoreMap":354},[1071,3622,3623,3625,3627,3629,3632,3634,3637,3639,3641,3643,3645,3647],{"class":1073,"line":1074},[1071,3624,1292],{"class":1165},[1071,3626,3416],{"class":1133},[1071,3628,1149],{"class":1081},[1071,3630,3631],{"class":1152},"dirs",[1071,3633,1223],{"class":1177},[1071,3635,3636],{"class":1304}," Import",[1071,3638,3313],{"class":1177},[1071,3640,3636],{"class":1304},[1071,3642,3318],{"class":1085},[1071,3644,1156],{"class":1081},[1071,3646,1223],{"class":1177},[1071,3648,1313],{"class":1312},[1058,3650,1316],{"id":3651},"参数-4",[1024,3653,3654,3657],{},[1028,3655,3656],{},"imports","：一个对象或一组对象，包含以下属性：",[1324,3659,3660,3672],{},[1327,3661,3662],{},[1330,3663,3664,3666,3668,3670],{},[1333,3665,1335],{},[1333,3667,1282],{},[1333,3669,1340],{},[1333,3671,1343],{},[1345,3673,3674,3691,3709,3728,3746,3764,3782,3803],{},[1330,3675,3676,3680,3684,3688],{},[1350,3677,3678],{},[1028,3679,3554],{},[1350,3681,3682],{},[1028,3683,1358],{},[1350,3685,3686],{},[1028,3687,1363],{},[1350,3689,3690],{},"要被检测的导入名。",[1330,3692,3693,3698,3702,3706],{},[1350,3694,3695],{},[1028,3696,3697],{},"from",[1350,3699,3700],{},[1028,3701,1358],{},[1350,3703,3704],{},[1028,3705,1363],{},[1350,3707,3708],{},"要从中导入的模块说明符。",[1330,3710,3711,3716,3721,3725],{},[1350,3712,3713],{},[1028,3714,3715],{},"priority",[1350,3717,3718],{},[1028,3719,3720],{},"number",[1350,3722,3723],{},[1028,3724,1382],{},[1350,3726,3727],{},"导入的优先级；如果多个导入同名，会使用该优先级最高的那一个。",[1330,3729,3730,3735,3739,3743],{},[1350,3731,3732],{},[1028,3733,3734],{},"disabled",[1350,3736,3737],{},[1028,3738,1396],{},[1350,3740,3741],{},[1028,3742,1382],{},[1350,3744,3745],{},"该导入是否被禁用。",[1330,3747,3748,3752,3757,3761],{},[1350,3749,3750],{},[1028,3751,1191],{},[1350,3753,3754],{},[1028,3755,3756],{},"Record\u003Cstring, any>",[1350,3758,3759],{},[1028,3760,1382],{},[1350,3762,3763],{},"导入的元数据。",[1330,3765,3766,3771,3775,3779],{},[1350,3767,3768],{},[1028,3769,3770],{},"type",[1350,3772,3773],{},[1028,3774,1396],{},[1350,3776,3777],{},[1028,3778,1382],{},[1350,3780,3781],{},"该导入是否为纯类型导入。",[1330,3783,3784,3789,3793,3797],{},[1350,3785,3786],{},[1028,3787,3788],{},"typeFrom",[1350,3790,3791],{},[1028,3792,1358],{},[1350,3794,3795],{},[1028,3796,1382],{},[1350,3798,3799,3800,3802],{},"生成类型声明时用作 ",[1028,3801,3697],{}," 值。",[1330,3804,3805,3809,3813,3817],{},[1350,3806,3807],{},[1028,3808,2241],{},[1350,3810,3811],{},[1028,3812,1358],{},[1350,3814,3815],{},[1028,3816,1382],{},[1350,3818,3819],{},"以该名称导入。",[1049,3821,3823],{"id":3822},"addserverimportsdir",[1028,3824,3825],{},"addServerImportsDir",[1024,3827,3828],{},"添加一个将由 Nitro 扫描以进行自动导入的目录。",[1058,3830,1060],{"id":3831},"用法-6",[1062,3833,3835],{"className":1064,"code":3834,"language":1066,"meta":1067,"style":354},"import { addServerImportsDir, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  meta: {\n    name: 'my-module',\n    configKey: 'myModule',\n  },\n  setup (options) {\n    const { resolve } = createResolver(import.meta.url)\n    addServerImportsDir(resolve('.\u002Fruntime\u002Fserver\u002Fcomposables'))\n  },\n})\n",[1028,3836,3837,3864,3868,3880,3888,3903,3918,3922,3934,3962,3982,3986],{"__ignoreMap":354},[1071,3838,3839,3841,3843,3846,3848,3850,3852,3854,3856,3858,3860,3862],{"class":1073,"line":1074},[1071,3840,1078],{"class":1077},[1071,3842,1082],{"class":1081},[1071,3844,3845],{"class":1085}," addServerImportsDir",[1071,3847,1089],{"class":1081},[1071,3849,1092],{"class":1085},[1071,3851,1089],{"class":1081},[1071,3853,1097],{"class":1085},[1071,3855,1100],{"class":1081},[1071,3857,1103],{"class":1077},[1071,3859,1107],{"class":1106},[1071,3861,1111],{"class":1110},[1071,3863,1114],{"class":1106},[1071,3865,3866],{"class":1073,"line":1117},[1071,3867,1121],{"emptyLinePlaceholder":1120},[1071,3869,3870,3872,3874,3876,3878],{"class":1073,"line":1124},[1071,3871,1127],{"class":1077},[1071,3873,1130],{"class":1077},[1071,3875,1097],{"class":1133},[1071,3877,1136],{"class":1085},[1071,3879,1139],{"class":1081},[1071,3881,3882,3884,3886],{"class":1073,"line":1142},[1071,3883,3142],{"class":1183},[1071,3885,1223],{"class":1081},[1071,3887,1159],{"class":1081},[1071,3889,3890,3892,3894,3896,3899,3901],{"class":1073,"line":1162},[1071,3891,3151],{"class":1183},[1071,3893,1223],{"class":1081},[1071,3895,1107],{"class":1106},[1071,3897,3898],{"class":1110},"my-module",[1071,3900,1231],{"class":1106},[1071,3902,1234],{"class":1081},[1071,3904,3905,3907,3909,3911,3914,3916],{"class":1073,"line":1202},[1071,3906,3167],{"class":1183},[1071,3908,1223],{"class":1081},[1071,3910,1107],{"class":1106},[1071,3912,3913],{"class":1110},"myModule",[1071,3915,1231],{"class":1106},[1071,3917,1234],{"class":1081},[1071,3919,3920],{"class":1073,"line":1207},[1071,3921,1271],{"class":1081},[1071,3923,3924,3926,3928,3930,3932],{"class":1073,"line":1217},[1071,3925,1146],{"class":1145},[1071,3927,1149],{"class":1081},[1071,3929,1153],{"class":1152},[1071,3931,1156],{"class":1081},[1071,3933,1159],{"class":1081},[1071,3935,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960],{"class":1073,"line":1237},[1071,3937,1166],{"class":1165},[1071,3939,1082],{"class":1081},[1071,3941,1172],{"class":1171},[1071,3943,1100],{"class":1081},[1071,3945,1178],{"class":1177},[1071,3947,1092],{"class":1133},[1071,3949,1136],{"class":1183},[1071,3951,1078],{"class":1077},[1071,3953,1188],{"class":1081},[1071,3955,1191],{"class":1171},[1071,3957,1188],{"class":1081},[1071,3959,1196],{"class":1085},[1071,3961,1199],{"class":1183},[1071,3963,3964,3967,3969,3971,3973,3975,3978,3980],{"class":1073,"line":1260},[1071,3965,3966],{"class":1133},"    addServerImportsDir",[1071,3968,1136],{"class":1183},[1071,3970,2663],{"class":1133},[1071,3972,1136],{"class":1183},[1071,3974,1231],{"class":1106},[1071,3976,3977],{"class":1110},".\u002Fruntime\u002Fserver\u002Fcomposables",[1071,3979,1231],{"class":1106},[1071,3981,2675],{"class":1183},[1071,3983,3984],{"class":1073,"line":1268},[1071,3985,1271],{"class":1081},[1071,3987,3988,3990],{"class":1073,"line":1274},[1071,3989,1277],{"class":1081},[1071,3991,1199],{"class":1085},[1058,3993,1282],{"id":3994},"类型-6",[1062,3996,3998],{"className":1064,"code":3997,"language":1066,"meta":354,"style":354},"function addServerImportsDir (dirs: string | string[], opts: { prepend?: boolean }): void\n",[1028,3999,4000],{"__ignoreMap":354},[1071,4001,4002,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4025,4027,4029,4033,4036,4039,4042,4044],{"class":1073,"line":1074},[1071,4003,1292],{"class":1165},[1071,4005,3845],{"class":1133},[1071,4007,1149],{"class":1081},[1071,4009,3631],{"class":1152},[1071,4011,1223],{"class":1177},[1071,4013,2709],{"class":1312},[1071,4015,3313],{"class":1177},[1071,4017,2709],{"class":1312},[1071,4019,3318],{"class":1085},[1071,4021,1089],{"class":1081},[1071,4023,4024],{"class":1152}," opts",[1071,4026,1223],{"class":1177},[1071,4028,1082],{"class":1081},[1071,4030,4032],{"class":4031},"sP6_D"," prepend",[1071,4034,4035],{"class":1177},"?:",[1071,4037,4038],{"class":1312}," boolean",[1071,4040,4041],{"class":1081}," })",[1071,4043,1223],{"class":1177},[1071,4045,1313],{"class":1312},[1058,4047,1316],{"id":4048},"参数-5",[1324,4050,4051,4063],{},[1327,4052,4053],{},[1330,4054,4055,4057,4059,4061],{},[1333,4056,1335],{},[1333,4058,1282],{},[1333,4060,1340],{},[1333,4062,1343],{},[1345,4064,4065,4088],{},[1330,4066,4067,4071,4081,4085],{},[1350,4068,4069],{},[1028,4070,3631],{},[1350,4072,4073],{},[1028,4074,4075,4077,4079],{"className":1064,"language":1066,"style":354},[1071,4076,3356],{"class":1085},[1071,4078,3359],{"class":1177},[1071,4080,3362],{"class":1085},[1350,4082,4083],{},[1028,4084,1363],{},[1350,4086,4087],{},"一个或多个要注册供 Nitro 扫描的目录。",[1330,4089,4090,4095,4100,4104],{},[1350,4091,4092],{},[1028,4093,4094],{},"opts",[1350,4096,4097],{},[1028,4098,4099],{},"{ prepend?: boolean }",[1350,4101,4102],{},[1028,4103,1382],{},[1350,4105,4106,4107,4110,4111,4113],{},"导入目录的选项。如果 ",[1028,4108,4109],{},"prepend"," 为 ",[1028,4112,1363],{},"，该目录会被添加到扫描列表的开头。",[1058,4115,1442],{"id":4116},"示例-3",[1024,4118,1449,4119,4121],{},[1028,4120,3825],{}," 添加一个将由 Nitro 扫描的目录。当你想让 Nitro 从自定义服务器目录自动导入函数时，这很有用。",[1454,4123],{},[1062,4125,4126],{"className":1064,"code":3834,"filename":1458,"language":1066,"meta":1067,"style":354},[1028,4127,4128,4154,4158,4170,4178,4192,4206,4210,4222,4250,4268,4272],{"__ignoreMap":354},[1071,4129,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150,4152],{"class":1073,"line":1074},[1071,4131,1078],{"class":1077},[1071,4133,1082],{"class":1081},[1071,4135,3845],{"class":1085},[1071,4137,1089],{"class":1081},[1071,4139,1092],{"class":1085},[1071,4141,1089],{"class":1081},[1071,4143,1097],{"class":1085},[1071,4145,1100],{"class":1081},[1071,4147,1103],{"class":1077},[1071,4149,1107],{"class":1106},[1071,4151,1111],{"class":1110},[1071,4153,1114],{"class":1106},[1071,4155,4156],{"class":1073,"line":1117},[1071,4157,1121],{"emptyLinePlaceholder":1120},[1071,4159,4160,4162,4164,4166,4168],{"class":1073,"line":1124},[1071,4161,1127],{"class":1077},[1071,4163,1130],{"class":1077},[1071,4165,1097],{"class":1133},[1071,4167,1136],{"class":1085},[1071,4169,1139],{"class":1081},[1071,4171,4172,4174,4176],{"class":1073,"line":1142},[1071,4173,3142],{"class":1183},[1071,4175,1223],{"class":1081},[1071,4177,1159],{"class":1081},[1071,4179,4180,4182,4184,4186,4188,4190],{"class":1073,"line":1162},[1071,4181,3151],{"class":1183},[1071,4183,1223],{"class":1081},[1071,4185,1107],{"class":1106},[1071,4187,3898],{"class":1110},[1071,4189,1231],{"class":1106},[1071,4191,1234],{"class":1081},[1071,4193,4194,4196,4198,4200,4202,4204],{"class":1073,"line":1202},[1071,4195,3167],{"class":1183},[1071,4197,1223],{"class":1081},[1071,4199,1107],{"class":1106},[1071,4201,3913],{"class":1110},[1071,4203,1231],{"class":1106},[1071,4205,1234],{"class":1081},[1071,4207,4208],{"class":1073,"line":1207},[1071,4209,1271],{"class":1081},[1071,4211,4212,4214,4216,4218,4220],{"class":1073,"line":1217},[1071,4213,1146],{"class":1145},[1071,4215,1149],{"class":1081},[1071,4217,1153],{"class":1152},[1071,4219,1156],{"class":1081},[1071,4221,1159],{"class":1081},[1071,4223,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248],{"class":1073,"line":1237},[1071,4225,1166],{"class":1165},[1071,4227,1082],{"class":1081},[1071,4229,1172],{"class":1171},[1071,4231,1100],{"class":1081},[1071,4233,1178],{"class":1177},[1071,4235,1092],{"class":1133},[1071,4237,1136],{"class":1183},[1071,4239,1078],{"class":1077},[1071,4241,1188],{"class":1081},[1071,4243,1191],{"class":1171},[1071,4245,1188],{"class":1081},[1071,4247,1196],{"class":1085},[1071,4249,1199],{"class":1183},[1071,4251,4252,4254,4256,4258,4260,4262,4264,4266],{"class":1073,"line":1260},[1071,4253,3966],{"class":1133},[1071,4255,1136],{"class":1183},[1071,4257,2663],{"class":1133},[1071,4259,1136],{"class":1183},[1071,4261,1231],{"class":1106},[1071,4263,3977],{"class":1110},[1071,4265,1231],{"class":1106},[1071,4267,2675],{"class":1183},[1071,4269,4270],{"class":1073,"line":1268},[1071,4271,1271],{"class":1081},[1071,4273,4274,4276],{"class":1073,"line":1274},[1071,4275,1277],{"class":1081},[1071,4277,1199],{"class":1085},[1062,4279,4282],{"className":1064,"code":4280,"filename":4281,"language":1066,"meta":1067,"style":354},"export function useApiSecret () {\n  const { apiSecret } = useRuntimeConfig()\n  return apiSecret\n}\n","runtime\u002Fserver\u002Fcomposables\u002Findex.ts",[1028,4283,4284,4298,4317,4324],{"__ignoreMap":354},[1071,4285,4286,4288,4291,4294,4296],{"class":1073,"line":1074},[1071,4287,1127],{"class":1077},[1071,4289,4290],{"class":1165}," function",[1071,4292,4293],{"class":1133}," useApiSecret",[1071,4295,1803],{"class":1081},[1071,4297,1159],{"class":1081},[1071,4299,4300,4303,4305,4308,4310,4312,4315],{"class":1073,"line":1117},[1071,4301,4302],{"class":1165},"  const",[1071,4304,1082],{"class":1081},[1071,4306,4307],{"class":1171}," apiSecret",[1071,4309,1100],{"class":1081},[1071,4311,1178],{"class":1177},[1071,4313,4314],{"class":1133}," useRuntimeConfig",[1071,4316,2293],{"class":1183},[1071,4318,4319,4321],{"class":1073,"line":1124},[1071,4320,1657],{"class":1077},[1071,4322,4323],{"class":1085}," apiSecret\n",[1071,4325,4326],{"class":1073,"line":1142},[1071,4327,4328],{"class":1081},"}\n",[1024,4330,1223],{},[1024,4332,4333,4334,4337],{},"然后你可以在你的服务器代码中使用 ",[1028,4335,4336],{},"useApiSecret"," 函数：",[1062,4339,4342],{"className":1064,"code":4340,"filename":4341,"language":1066,"meta":1067,"style":354},"import { defineEventHandler } from 'nitro\u002Fh3'\n\nconst useApiSecret = (): string => ''\n\u002F\u002F ---cut---\nexport default defineEventHandler(() => {\n  const apiSecret = useApiSecret()\n  \u002F\u002F 对该 apiSecret 做一些处理\n})\n","runtime\u002Fserver\u002Fapi\u002Fhello.ts",[1028,4343,4344,4362,4366,4387,4391,4407,4419,4424],{"__ignoreMap":354},[1071,4345,4346,4348,4350,4352,4354,4356,4358,4360],{"class":1073,"line":1074},[1071,4347,1078],{"class":1077},[1071,4349,1082],{"class":1081},[1071,4351,1619],{"class":1085},[1071,4353,1100],{"class":1081},[1071,4355,1103],{"class":1077},[1071,4357,1107],{"class":1106},[1071,4359,1628],{"class":1110},[1071,4361,1114],{"class":1106},[1071,4363,4364],{"class":1073,"line":1117},[1071,4365,1121],{"emptyLinePlaceholder":1120},[1071,4367,4368,4371,4374,4376,4378,4380,4382,4384],{"class":1073,"line":1124},[1071,4369,4370],{"class":1165},"const",[1071,4372,4293],{"class":4373},"s5Y2e",[1071,4375,1178],{"class":1177},[1071,4377,1803],{"class":1081},[1071,4379,1223],{"class":1177},[1071,4381,2709],{"class":1312},[1071,4383,1650],{"class":1165},[1071,4385,4386],{"class":1106}," ''\n",[1071,4388,4389],{"class":1073,"line":1142},[1071,4390,1963],{"class":1934},[1071,4392,4393,4395,4397,4399,4401,4403,4405],{"class":1073,"line":1162},[1071,4394,1127],{"class":1077},[1071,4396,1130],{"class":1077},[1071,4398,1619],{"class":1133},[1071,4400,1136],{"class":1085},[1071,4402,1647],{"class":1081},[1071,4404,1650],{"class":1165},[1071,4406,1159],{"class":1081},[1071,4408,4409,4411,4413,4415,4417],{"class":1073,"line":1202},[1071,4410,4302],{"class":1165},[1071,4412,4307],{"class":1171},[1071,4414,1178],{"class":1177},[1071,4416,4293],{"class":1133},[1071,4418,2293],{"class":1183},[1071,4420,4421],{"class":1073,"line":1207},[1071,4422,4423],{"class":1934},"  \u002F\u002F 对该 apiSecret 做一些处理\n",[1071,4425,4426,4428],{"class":1073,"line":1217},[1071,4427,1277],{"class":1081},[1071,4429,1199],{"class":1085},[1049,4431,4433],{"id":4432},"addserverscandir",[1028,4434,4435],{},"addServerScanDir",[1024,4437,4438,4439,4442],{},"添加将由 Nitro 扫描的目录。它会检查子目录，这些子目录会被像 ",[1028,4440,4441],{},"~~\u002Fserver"," 文件夹一样被注册。",[2354,4444],{},[1024,4446,4447,4448,4451,4452,4451,4455,3396,4458,4461],{},"只有 ",[1028,4449,4450],{},"~~\u002Fserver\u002Fapi","、",[1028,4453,4454],{},"~~\u002Fserver\u002Froutes",[1028,4456,4457],{},"~~\u002Fserver\u002Fmiddleware",[1028,4459,4460],{},"~~\u002Fserver\u002Futils"," 会被扫描。\n:",[1058,4463,1060],{"id":4464},"用法-7",[1062,4466,4468],{"className":1064,"code":4467,"language":1066,"meta":1067,"style":354},"import { addServerScanDir, createResolver, defineNuxtModule } from '@nuxt\u002Fkit'\n\nexport default defineNuxtModule({\n  meta: {\n    name: 'my-module',\n    configKey: 'myModule',\n  },\n  setup (options) {\n    const { resolve } = createResolver(import.meta.url)\n    addServerScanDir(resolve('.\u002Fruntime\u002Fserver'))\n  },\n})\n",[1028,4469,4470,4497,4501,4513,4521,4535,4549,4553,4565,4593,4613,4617],{"__ignoreMap":354},[1071,4471,4472,4474,4476,4479,4481,4483,4485,4487,4489,4491,4493,4495],{"class":1073,"line":1074},[1071,4473,1078],{"class":1077},[1071,4475,1082],{"class":1081},[1071,4477,4478],{"class":1085}," addServerScanDir",[1071,4480,1089],{"class":1081},[1071,4482,1092],{"class":1085},[1071,4484,1089],{"class":1081},[1071,4486,1097],{"class":1085},[1071,4488,1100],{"class":1081},[1071,4490,1103],{"class":1077},[1071,4492,1107],{"class":1106},[1071,4494,1111],{"class":1110},[1071,4496,1114],{"class":1106},[1071,4498,4499],{"class":1073,"line":1117},[1071,4500,1121],{"emptyLinePlaceholder":1120},[1071,4502,4503,4505,4507,4509,4511],{"class":1073,"line":1124},[1071,4504,1127],{"class":1077},[1071,4506,1130],{"class":1077},[1071,4508,1097],{"class":1133},[1071,4510,1136],{"class":1085},[1071,4512,1139],{"class":1081},[1071,4514,4515,4517,4519],{"class":1073,"line":1142},[1071,4516,3142],{"class":1183},[1071,4518,1223],{"class":1081},[1071,4520,1159],{"class":1081},[1071,4522,4523,4525,4527,4529,4531,4533],{"class":1073,"line":1162},[1071,4524,3151],{"class":1183},[1071,4526,1223],{"class":1081},[1071,4528,1107],{"class":1106},[1071,4530,3898],{"class":1110},[1071,4532,1231],{"class":1106},[1071,4534,1234],{"class":1081},[1071,4536,4537,4539,4541,4543,4545,4547],{"class":1073,"line":1202},[1071,4538,3167],{"class":1183},[1071,4540,1223],{"class":1081},[1071,4542,1107],{"class":1106},[1071,4544,3913],{"class":1110},[1071,4546,1231],{"class":1106},[1071,4548,1234],{"class":1081},[1071,4550,4551],{"class":1073,"line":1207},[1071,4552,1271],{"class":1081},[1071,4554,4555,4557,4559,4561,4563],{"class":1073,"line":1217},[1071,4556,1146],{"class":1145},[1071,4558,1149],{"class":1081},[1071,4560,1153],{"class":1152},[1071,4562,1156],{"class":1081},[1071,4564,1159],{"class":1081},[1071,4566,4567,4569,4571,4573,4575,4577,4579,4581,4583,4585,4587,4589,4591],{"class":1073,"line":1237},[1071,4568,1166],{"class":1165},[1071,4570,1082],{"class":1081},[1071,4572,1172],{"class":1171},[1071,4574,1100],{"class":1081},[1071,4576,1178],{"class":1177},[1071,4578,1092],{"class":1133},[1071,4580,1136],{"class":1183},[1071,4582,1078],{"class":1077},[1071,4584,1188],{"class":1081},[1071,4586,1191],{"class":1171},[1071,4588,1188],{"class":1081},[1071,4590,1196],{"class":1085},[1071,4592,1199],{"class":1183},[1071,4594,4595,4598,4600,4602,4604,4606,4609,4611],{"class":1073,"line":1260},[1071,4596,4597],{"class":1133},"    addServerScanDir",[1071,4599,1136],{"class":1183},[1071,4601,2663],{"class":1133},[1071,4603,1136],{"class":1183},[1071,4605,1231],{"class":1106},[1071,4607,4608],{"class":1110},".\u002Fruntime\u002Fserver",[1071,4610,1231],{"class":1106},[1071,4612,2675],{"class":1183},[1071,4614,4615],{"class":1073,"line":1268},[1071,4616,1271],{"class":1081},[1071,4618,4619,4621],{"class":1073,"line":1274},[1071,4620,1277],{"class":1081},[1071,4622,1199],{"class":1085},[1058,4624,1282],{"id":4625},"类型-7",[1062,4627,4629],{"className":1064,"code":4628,"language":1066,"meta":354,"style":354},"function addServerScanDir (dirs: string | string[], opts: { prepend?: boolean }): void\n",[1028,4630,4631],{"__ignoreMap":354},[1071,4632,4633,4635,4637,4639,4641,4643,4645,4647,4649,4651,4653,4655,4657,4659,4661,4663,4665,4667,4669],{"class":1073,"line":1074},[1071,4634,1292],{"class":1165},[1071,4636,4478],{"class":1133},[1071,4638,1149],{"class":1081},[1071,4640,3631],{"class":1152},[1071,4642,1223],{"class":1177},[1071,4644,2709],{"class":1312},[1071,4646,3313],{"class":1177},[1071,4648,2709],{"class":1312},[1071,4650,3318],{"class":1085},[1071,4652,1089],{"class":1081},[1071,4654,4024],{"class":1152},[1071,4656,1223],{"class":1177},[1071,4658,1082],{"class":1081},[1071,4660,4032],{"class":4031},[1071,4662,4035],{"class":1177},[1071,4664,4038],{"class":1312},[1071,4666,4041],{"class":1081},[1071,4668,1223],{"class":1177},[1071,4670,1313],{"class":1312},[1058,4672,1316],{"id":4673},"参数-6",[1324,4675,4676,4688],{},[1327,4677,4678],{},[1330,4679,4680,4682,4684,4686],{},[1333,4681,1335],{},[1333,4683,1282],{},[1333,4685,1340],{},[1333,4687,1343],{},[1345,4689,4690,4713],{},[1330,4691,4692,4696,4706,4710],{},[1350,4693,4694],{},[1028,4695,3631],{},[1350,4697,4698],{},[1028,4699,4700,4702,4704],{"className":1064,"language":1066,"style":354},[1071,4701,3356],{"class":1085},[1071,4703,3359],{"class":1177},[1071,4705,3362],{"class":1085},[1350,4707,4708],{},[1028,4709,1363],{},[1350,4711,4712],{},"一个或多个要注册供 Nitro 作为服务器目录扫描的目录。",[1330,4714,4715,4719,4723,4727],{},[1350,4716,4717],{},[1028,4718,4094],{},[1350,4720,4721],{},[1028,4722,4099],{},[1350,4724,4725],{},[1028,4726,1382],{},[1350,4728,4106,4729,4110,4731,4113],{},[1028,4730,4109],{},[1028,4732,1363],{},[1058,4734,1442],{"id":4735},"示例-4",[1024,4737,1449,4738,4740],{},[1028,4739,4435],{}," 添加一个将由 Nitro 扫描的目录。当你想添加一个自定义服务器目录时这很有用。",[1454,4742],{},[1062,4744,4745],{"className":1064,"code":4467,"filename":1458,"language":1066,"meta":1067,"style":354},[1028,4746,4747,4773,4777,4789,4797,4811,4825,4829,4841,4869,4887,4891],{"__ignoreMap":354},[1071,4748,4749,4751,4753,4755,4757,4759,4761,4763,4765,4767,4769,4771],{"class":1073,"line":1074},[1071,4750,1078],{"class":1077},[1071,4752,1082],{"class":1081},[1071,4754,4478],{"class":1085},[1071,4756,1089],{"class":1081},[1071,4758,1092],{"class":1085},[1071,4760,1089],{"class":1081},[1071,4762,1097],{"class":1085},[1071,4764,1100],{"class":1081},[1071,4766,1103],{"class":1077},[1071,4768,1107],{"class":1106},[1071,4770,1111],{"class":1110},[1071,4772,1114],{"class":1106},[1071,4774,4775],{"class":1073,"line":1117},[1071,4776,1121],{"emptyLinePlaceholder":1120},[1071,4778,4779,4781,4783,4785,4787],{"class":1073,"line":1124},[1071,4780,1127],{"class":1077},[1071,4782,1130],{"class":1077},[1071,4784,1097],{"class":1133},[1071,4786,1136],{"class":1085},[1071,4788,1139],{"class":1081},[1071,4790,4791,4793,4795],{"class":1073,"line":1142},[1071,4792,3142],{"class":1183},[1071,4794,1223],{"class":1081},[1071,4796,1159],{"class":1081},[1071,4798,4799,4801,4803,4805,4807,4809],{"class":1073,"line":1162},[1071,4800,3151],{"class":1183},[1071,4802,1223],{"class":1081},[1071,4804,1107],{"class":1106},[1071,4806,3898],{"class":1110},[1071,4808,1231],{"class":1106},[1071,4810,1234],{"class":1081},[1071,4812,4813,4815,4817,4819,4821,4823],{"class":1073,"line":1202},[1071,4814,3167],{"class":1183},[1071,4816,1223],{"class":1081},[1071,4818,1107],{"class":1106},[1071,4820,3913],{"class":1110},[1071,4822,1231],{"class":1106},[1071,4824,1234],{"class":1081},[1071,4826,4827],{"class":1073,"line":1207},[1071,4828,1271],{"class":1081},[1071,4830,4831,4833,4835,4837,4839],{"class":1073,"line":1217},[1071,4832,1146],{"class":1145},[1071,4834,1149],{"class":1081},[1071,4836,1153],{"class":1152},[1071,4838,1156],{"class":1081},[1071,4840,1159],{"class":1081},[1071,4842,4843,4845,4847,4849,4851,4853,4855,4857,4859,4861,4863,4865,4867],{"class":1073,"line":1237},[1071,4844,1166],{"class":1165},[1071,4846,1082],{"class":1081},[1071,4848,1172],{"class":1171},[1071,4850,1100],{"class":1081},[1071,4852,1178],{"class":1177},[1071,4854,1092],{"class":1133},[1071,4856,1136],{"class":1183},[1071,4858,1078],{"class":1077},[1071,4860,1188],{"class":1081},[1071,4862,1191],{"class":1171},[1071,4864,1188],{"class":1081},[1071,4866,1196],{"class":1085},[1071,4868,1199],{"class":1183},[1071,4870,4871,4873,4875,4877,4879,4881,4883,4885],{"class":1073,"line":1260},[1071,4872,4597],{"class":1133},[1071,4874,1136],{"class":1183},[1071,4876,2663],{"class":1133},[1071,4878,1136],{"class":1183},[1071,4880,1231],{"class":1106},[1071,4882,4608],{"class":1110},[1071,4884,1231],{"class":1106},[1071,4886,2675],{"class":1183},[1071,4888,4889],{"class":1073,"line":1268},[1071,4890,1271],{"class":1081},[1071,4892,4893,4895],{"class":1073,"line":1274},[1071,4894,1277],{"class":1081},[1071,4896,1199],{"class":1085},[1062,4898,4901],{"className":1064,"code":4899,"filename":4900,"language":1066,"meta":1067,"style":354},"export function hello () {\n  return 'Hello from server utils!'\n}\n","runtime\u002Fserver\u002Futils\u002Findex.ts",[1028,4902,4903,4916,4927],{"__ignoreMap":354},[1071,4904,4905,4907,4909,4912,4914],{"class":1073,"line":1074},[1071,4906,1127],{"class":1077},[1071,4908,4290],{"class":1165},[1071,4910,4911],{"class":1133}," hello",[1071,4913,1803],{"class":1081},[1071,4915,1159],{"class":1081},[1071,4917,4918,4920,4922,4925],{"class":1073,"line":1117},[1071,4919,1657],{"class":1077},[1071,4921,1107],{"class":1106},[1071,4923,4924],{"class":1110},"Hello from server utils!",[1071,4926,1114],{"class":1106},[1071,4928,4929],{"class":1073,"line":1124},[1071,4930,4328],{"class":1081},[1024,4932,1223],{},[1024,4934,4333,4935,4938],{},[1028,4936,4937],{},"hello"," 函数。",[1062,4940,4942],{"className":1064,"code":4941,"filename":4341,"language":1066,"meta":1067,"style":354},"import { defineEventHandler } from 'nitro\u002Fh3'\n\nfunction hello () {\n  return 'Hello from server utils!'\n}\n\u002F\u002F ---cut---\nexport default defineEventHandler(() => {\n  return hello() \u002F\u002F Hello from server utils!\n})\n",[1028,4943,4944,4962,4966,4976,4986,4990,4994,5010,5022],{"__ignoreMap":354},[1071,4945,4946,4948,4950,4952,4954,4956,4958,4960],{"class":1073,"line":1074},[1071,4947,1078],{"class":1077},[1071,4949,1082],{"class":1081},[1071,4951,1619],{"class":1085},[1071,4953,1100],{"class":1081},[1071,4955,1103],{"class":1077},[1071,4957,1107],{"class":1106},[1071,4959,1628],{"class":1110},[1071,4961,1114],{"class":1106},[1071,4963,4964],{"class":1073,"line":1117},[1071,4965,1121],{"emptyLinePlaceholder":1120},[1071,4967,4968,4970,4972,4974],{"class":1073,"line":1124},[1071,4969,1292],{"class":1165},[1071,4971,4911],{"class":1133},[1071,4973,1803],{"class":1081},[1071,4975,1159],{"class":1081},[1071,4977,4978,4980,4982,4984],{"class":1073,"line":1142},[1071,4979,1657],{"class":1077},[1071,4981,1107],{"class":1106},[1071,4983,4924],{"class":1110},[1071,4985,1114],{"class":1106},[1071,4987,4988],{"class":1073,"line":1162},[1071,4989,4328],{"class":1081},[1071,4991,4992],{"class":1073,"line":1202},[1071,4993,1963],{"class":1934},[1071,4995,4996,4998,5000,5002,5004,5006,5008],{"class":1073,"line":1207},[1071,4997,1127],{"class":1077},[1071,4999,1130],{"class":1077},[1071,5001,1619],{"class":1133},[1071,5003,1136],{"class":1085},[1071,5005,1647],{"class":1081},[1071,5007,1650],{"class":1165},[1071,5009,1159],{"class":1081},[1071,5011,5012,5014,5016,5019],{"class":1073,"line":1217},[1071,5013,1657],{"class":1077},[1071,5015,4911],{"class":1133},[1071,5017,5018],{"class":1183},"() ",[1071,5020,5021],{"class":1934},"\u002F\u002F Hello from server utils!\n",[1071,5023,5024,5026],{"class":1073,"line":1237},[1071,5025,1277],{"class":1081},[1071,5027,1199],{"class":1085},[5029,5030,5031],"style",{},"html pre.shiki code .szyBz, html code.shiki .szyBz{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#F97583;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sF54B, html code.shiki .sF54B{--shiki-light:#39ADB5;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}html pre.shiki code .smVNa, html code.shiki .smVNa{--shiki-light:#90A4AE;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html pre.shiki code .s0jeK, html code.shiki .s0jeK{--shiki-light:#39ADB5;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .s-Aze, html code.shiki .s-Aze{--shiki-light:#91B859;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .srJn9, html code.shiki .srJn9{--shiki-light:#6182B8;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .syA7L, html code.shiki .syA7L{--shiki-light:#E53935;--shiki-default:#B392F0;--shiki-dark:#F07178}html pre.shiki code .ssIVr, html code.shiki .ssIVr{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#FFAB70;--shiki-default-font-style:inherit;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sV7Px, html code.shiki .sV7Px{--shiki-light:#9C3EDA;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sJTDI, html code.shiki .sJTDI{--shiki-light:#90A4AE;--shiki-default:#79B8FF;--shiki-dark:#BABED8}html pre.shiki code .sXPRQ, html code.shiki .sXPRQ{--shiki-light:#39ADB5;--shiki-default:#F97583;--shiki-dark:#89DDFF}html pre.shiki code .sOtFm, html code.shiki .sOtFm{--shiki-light:#E53935;--shiki-default:#E1E4E8;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJK67, html code.shiki .sJK67{--shiki-light:#E2931D;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .seQRr, html code.shiki .seQRr{--shiki-light:#E2931D;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}html pre.shiki code .szYI0, html code.shiki .szYI0{--shiki-light:#90A4AE;--shiki-default:#9ECBFF;--shiki-dark:#BABED8}html pre.shiki code .sZqJ9, html code.shiki .sZqJ9{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .si1Qm, html code.shiki .si1Qm{--shiki-light:#FF5370;--shiki-default:#79B8FF;--shiki-dark:#FF9CAC}html pre.shiki code .sP6_D, html code.shiki .sP6_D{--shiki-light:#E53935;--shiki-default:#FFAB70;--shiki-dark:#F07178}html pre.shiki code .s5Y2e, html code.shiki .s5Y2e{--shiki-light:#90A4AE;--shiki-default:#B392F0;--shiki-dark:#BABED8}",{"title":354,"searchDepth":1124,"depth":1124,"links":5033},[5034,5042,5050,5054,5060,5065,5070,5076],{"id":1051,"depth":1117,"text":1034,"children":5035},[5036,5037,5038,5039],{"id":1060,"depth":1124,"text":1060},{"id":1282,"depth":1124,"text":1282},{"id":1316,"depth":1124,"text":1316},{"id":1442,"depth":1124,"text":1442,"children":5040},[5041],{"id":1446,"depth":1142,"text":1446},{"id":1722,"depth":1117,"text":1038,"children":5043},[5044,5045,5046,5047],{"id":1730,"depth":1124,"text":1060},{"id":1924,"depth":1124,"text":1282},{"id":1986,"depth":1124,"text":1316},{"id":2043,"depth":1124,"text":1442,"children":5048},[5049],{"id":2046,"depth":1142,"text":1446},{"id":2333,"depth":1117,"text":1030,"children":5051},[5052,5053],{"id":2361,"depth":1124,"text":1060},{"id":2514,"depth":1124,"text":1282},{"id":2535,"depth":1117,"text":1042,"children":5055},[5056,5057,5058,5059],{"id":2569,"depth":1124,"text":1060},{"id":2688,"depth":1124,"text":1282},{"id":2718,"depth":1124,"text":1316},{"id":2754,"depth":1124,"text":1442},{"id":3085,"depth":1117,"text":1046,"children":5061},[5062,5063,5064],{"id":3093,"depth":1124,"text":1060},{"id":3290,"depth":1124,"text":1282},{"id":3327,"depth":1124,"text":1316},{"id":3372,"depth":1117,"text":3375,"children":5066},[5067,5068,5069],{"id":3402,"depth":1124,"text":1060},{"id":3615,"depth":1124,"text":1282},{"id":3651,"depth":1124,"text":1316},{"id":3822,"depth":1117,"text":3825,"children":5071},[5072,5073,5074,5075],{"id":3831,"depth":1124,"text":1060},{"id":3994,"depth":1124,"text":1282},{"id":4048,"depth":1124,"text":1316},{"id":4116,"depth":1124,"text":1442},{"id":4432,"depth":1117,"text":4435,"children":5077},[5078,5079,5080,5081],{"id":4464,"depth":1124,"text":1060},{"id":4625,"depth":1124,"text":1282},{"id":4673,"depth":1124,"text":1316},{"id":4735,"depth":1124,"text":1442},"md",{"links":5084},[5085],{"label":5086,"icon":5087,"to":5088,"size":5089},"Source","i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Fmain\u002Fpackages\u002Fkit\u002Fsrc\u002Fnitro.ts","xs",null,{"title":749,"description":750},"docs\u002F4.api\u002F5.kit\u002F12.nitro","KC3EhIK1PPnu1wvxhWUn0-Wh9gcleEymhbEv50eS-PU",1785179859796]