Fetch the repository succeeded.
import { existsSync, readdirSync } from "node:fs";
import { resolve } from "node:path";
import { defineNuxtModule } from "@nuxt/kit";
export default defineNuxtModule({
meta: {
name: "buildingai-extensions-loader",
},
setup(options, nuxt) {
// Only execute in development or production environment
if (process.env.NODE_ENV === "production") {
return;
}
const extensionsDir = resolve(process.cwd(), "../../../extensions");
const extensionsDirs = readdirSync(extensionsDir, { withFileTypes: true })
.filter((dirent) => dirent.isDirectory())
.filter((dirent) => !dirent.name.startsWith("."))
.map((dirent) => dirent.name);
const availableExtensions: string[] = [];
for (const extensionsName of extensionsDirs) {
const extensionsPath = resolve(extensionsDir, extensionsName);
const outputPath = resolve(extensionsPath, ".output", "public");
if (existsSync(outputPath)) {
availableExtensions.push(extensionsName);
nuxt.hook("nitro:config", (nitroConfig) => {
nitroConfig.publicAssets = nitroConfig.publicAssets || [];
nitroConfig.publicAssets.push({
dir: outputPath,
baseURL: `/extensions/${extensionsName}/`,
});
});
}
}
nuxt.options.runtimeConfig.public.extensions = availableExtensions;
},
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。