UNPKG

multi-lane-manager

Version:

Nacos 泳道管理与请求路由组件

74 lines 2.9 kB
// src/module.ts import { defineNuxtModule, createResolver, addServerHandler } from "@nuxt/kit"; var module_default = defineNuxtModule({ meta: { name: "multi-lane-manager", configKey: "multiLaneManager", // 统一使用与类型定义相同的配置键 compatibility: { nuxt: "^3.0.0" // 兼容 Nuxt 3.0.0 及以上版本 } }, /** * 模块设置函数 * 负责注册 Nitro 插件和服务器中间件 * * @param _options 模块配置选项 * @param nuxt Nuxt 实例 */ setup(_options, nuxt) { const logger = { info: (msg) => console.log(`[multi-lane-manager:module][INFO] \u{1F535} ${msg}`), warn: (msg) => console.warn(`[multi-lane-manager:module][WARN] \u{1F7E0} ${msg}`), error: (msg) => console.error(`[multi-lane-manager:module][ERROR] \u{1F534} ${msg}`) }; logger.info("\u6B63\u5728\u8BBE\u7F6E multi-lane-manager \u6A21\u5757..."); const { resolve } = createResolver(import.meta.url); try { logger.info("\u6B63\u5728\u6DFB\u52A0\u7528\u4E8E\u670D\u52A1\u6CE8\u518C\u7684 Nitro \u63D2\u4EF6..."); nuxt.hook("nitro:config", (nitroConfig) => { nitroConfig.plugins = nitroConfig.plugins || []; nitroConfig.plugins.unshift(resolve("./runtime/nitro-plugin")); logger.info("Nitro \u63D2\u4EF6\u6DFB\u52A0\u6210\u529F (\u5DF2\u8BBE\u7F6E\u4E3A\u6700\u65E9\u6267\u884C) \u2705"); }); } catch (error) { logger.error(`\u6DFB\u52A0 Nitro \u63D2\u4EF6\u5931\u8D25: ${error}`); } try { logger.info("\u6B63\u5728\u6DFB\u52A0\u670D\u52A1\u5668\u4E2D\u95F4\u4EF6..."); addServerHandler({ handler: resolve("./runtime/server-middleware.mjs"), middleware: true, route: "/**", // 匹配所有路径 order: -100 // 负数表示更高的优先级,确保最先执行 }); addServerHandler({ handler: resolve("./runtime/server-middleware.mjs"), route: "/_nuxt/**", // 专门匹配 /_nuxt/ 路径下的所有请求 order: -100 // 负数表示更高的优先级,确保最先执行 }); addServerHandler({ handler: resolve("./runtime/server-middleware.mjs"), route: "/api/**", // 专门匹配 /api/ 路径下的所有请求 middleware: true, // 确保它作为中间件执行 order: -100 // 负数表示更高的优先级,确保最先执行 }); logger.info("\u670D\u52A1\u5668\u4E2D\u95F4\u4EF6\u6DFB\u52A0\u6210\u529F\uFF0C\u8BBE\u7F6E\u4E3A\u6700\u9AD8\u4F18\u5148\u7EA7 \u2705"); } catch (error) { logger.error(`\u6DFB\u52A0\u670D\u52A1\u5668\u4E2D\u95F4\u4EF6\u5931\u8D25: ${error}`); } logger.info("Multi-lane-manager \u6A21\u5757\u8BBE\u7F6E\u5B8C\u6210 \u2705"); } }); export { module_default as default }; //# sourceMappingURL=module.mjs.map