easyai-plugin-dev-kit/server/api/manifest.get.ts
2025-08-19 18:15:28 +08:00

34 lines
964 B
TypeScript

import { join } from "path";
import { promises as fs } from "fs";
import { defineEventHandler } from "h3";
export default defineEventHandler(async (event) => {
// 跨域
event.node.res.setHeader("Access-Control-Allow-Origin", "*");
event.node.res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
event.node.res.setHeader("Access-Control-Allow-Headers", "Content-Type");
// 支持 preflight OPTIONS 请求
if (event.node.req.method === "OPTIONS") {
event.node.res.statusCode = 204;
event.node.res.end();
return;
}
try {
// Nuxt buildDir 是 .nuxt
const manifestPath = join(process.cwd(), ".nuxt/generated/manifest.ts");
// 检查文件是否存在
await fs.access(manifestPath);
// 动态导入
const { manifestInfo } = await import(manifestPath);
return manifestInfo;
} catch (err) {
console.warn("manifest not found", err);
return { version: "0.0.0", components: [] };
}
});