detectAndroidModules
检测 Android 项目中的所有模块,识别应用模块和库模块的结构。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.readdirSync | FileSystem['readdirSync'] | 读取目录内容 |
deps.statSync | FileSystem['statSync'] | 获取文件状态 |
deps.existsSync | FileSystem['existsSync'] | 检查文件是否存在 |
deps.join | Path['join'] | 路径拼接 |
环境要求
- fs: Node.js 文件系统模块
- path: 路径处理模块
typescript
import fs from 'fs'
import path from 'path'函数签名
typescript
function detectAllAndroidModules(
projectPath: string,
deps: DetectAndroidModulesDeps
): string[]
interface DetectAndroidModulesDeps {
readdirSync: FileSystem['readdirSync']
statSync: FileSystem['statSync']
existsSync: FileSystem['existsSync']
join: Path['join']
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
projectPath | string | 是 | Android 项目根目录路径 |
deps | DetectAndroidModulesDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
string[] | 模块目录名数组,包含所有检测到的 Android 模块 |
工作原理
- 读取项目根目录下的所有子目录
- 遍历每个子目录:
- 使用
statSync检查是否为目录 - 构建 AndroidManifest.xml 路径:
子目录/src/main/AndroidManifest.xml - 使用
existsSync检查 AndroidManifest.xml 是否存在
- 使用
- 收集所有包含标准 Android 模块结构的目录名
- 返回模块名称数组
标准 Android 模块必须包含 src/main/AndroidManifest.xml 文件。通常主应用模块为 app,其他可能包含多个库模块。