外观
SSG 应用
SSG 应用,适合作为产品落地页。框架支持 Nuxt 4 和 VitePress 2 两种框架的 SSG 模式。
SSG 应用统一存放在 apps-home/ 目录下。程序会自动发现该目录下的 SSG 应用。
自动发现 SSG 应用的代码实现
文件:src/utils/ConstantUtils.mts
注意:会过滤含有 _ 前缀和 _backup 后缀的目录。
typescript
export const STANDALONE_APPS_NAMES: string[] = [];
if (existsSync(PATH_APPS_HOME)) {
const dirs = readdirSync(PATH_APPS_HOME).filter((name) => {
const fullPath = joinPath(PATH_APPS_HOME, name);
return statSync(fullPath).isDirectory() && !name.startsWith("_") && !name.endsWith("_backup");
});
dirs.sort((a, b) => a.localeCompare(b));
for (const appName of dirs) {
STANDALONE_APPS_NAMES.push(appName);
}
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Nuxt 4
开发配置
使用 build/nuxt.config.mts 中的 generateNuxtConfig 函数生成 Nuxt 配置:
typescript
import { generateNuxtConfig } from "#scripts/utils/nuxt.config";
export default generateNuxtConfig({
// 项目特定配置
});1
2
3
4
2
3
4
路径别名:@/* → ./app/*、@base/* → ../_base/app/*
自动发现机制
前端应用采用目录自动发现机制,开发脚本无需手动配置应用列表,新建应用后重启开发服务器即可自动识别。
apps-home/ 目录同样采用自动发现机制,扫描规则与 SPA 子应用一致(过滤 _ 前缀和 _backup 目录)。STANDALONE_APPS_NAMES 存储发现的 Nuxt 应用列表。
构建脚本会利用自动发现结果批量构建所有 Nuxt 应用。
使用方式
在 apps/ 下创建新的 SPA 子应用,或 apps-home/ 下创建新的 Nuxt 应用时,只需确保:
- 目录名不以
_开头(_前缀用于_base等基础目录) - 目录名不包含
_backup(用于备份目录)
重启开发服务器后,新应用自动被识别并纳入启动/构建流程,无需修改任何配置文件。