34 lines
964 B
TypeScript
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.js");
|
|
|
|
// 检查文件是否存在
|
|
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: [] };
|
|
}
|
|
});
|