SuperAPI AI 工具集

nuxt

通用与其它

查看项目

更新于 10-16 01:14

技能介绍

用途:@emulators/adapter-nuxt 可把模拟器直接嵌入 Nuxt 应用并在同一域名下运行,适用于预览部署等 OAuth 回调 URL 每次变化的场景。

安装:npm install @emulators/adapter-nuxt @emulators/github @emulators/google。只安装所需模拟器,每个 @emulators/* 包独立发布,可保持服务端打包体积较小。

用法:创建命名捕获路由,如 server/routes/emulate/[...path].ts,使用 createEmulateHandler 配置 services(如 github、google)并填入 seed 数据;随后会生成 /emulate/github/、/emulate/google/ 等路由。GitHub 安装令牌元数据可在服务端 /emulate/github/_emulate/installation-tokens 获取。在 nuxt.config.ts 中用 withEmulate 包装配置,以便 Nitro 生产构建追踪 @emulators/core 资源。将 OAuth 提供方指向同源模拟器路径,如 ${baseUrl}/emulate/github/login/oauth/authorize;未配置 oauth_apps 时模拟器会跳过 client_id、client_secret 与 redirect_uri 校验。

持久化:默认状态在内存中,冷启动即重置;可传入持久化适配器,如 Nitro Storage 或 @emulators/core 的 filePersistence('.emulate/state.json')。冷启动时加载状态,命中则恢复 Store 与令牌映射,否则按配置播种并保存初始状态;变更请求(POST、PUT、PATCH、DELETE)后保存,保存经内部队列串行化。

限制:需要兼容 Node 的 Nuxt 服务端运行时;并发变更采用最后写入胜出;持久化快照应保持私有,initialize 需以原子方式实现(如 Redis SET NX)。自定义模拟器可由 defineEmulator 创建,测试收尾需 await 处理器的 close()。