detectProjectType
检测 UniApp 项目类型,判断是 HBuilderX 工程还是 CLI 工程。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.existsSync | FileSystem['existsSync'] | 检查文件是否存在 |
deps.join | Path['join'] | 路径拼接 |
函数签名
typescript
function detectProjectType(
projectPath: string,
deps: DetectProjectTypeDeps
): ProjectTypeResult
interface ProjectTypeResult {
isUniApp: boolean
projectType?: UniAppProjectType
manifestPath?: string
pagesPath?: string
error?: string
}
enum UniAppProjectType {
HBUILDERX = 'hbuilderx'
CLI = 'cli'
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
projectPath | string | 是 | 项目路径 |
deps | DetectProjectTypeDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
ProjectTypeResult | 项目类型检测结果 |
工作原理
- 检查 manifest.json:在
src目录或根目录查找manifest.json - 检查 pages.json:在
src目录或根目录查找pages.json - 检测项目类型:
- HBuilderX 工程:存在
.hbuilderx目录或uni_modules目录 - CLI 工程:存在
package.json和node_modules目录,或存在构建配置文件
- HBuilderX 工程:存在
- 返回结果:包含是否为 UniApp 项目、项目类型、配置文件路径等信息
支持检测 HBuilderX 工程和 CLI 工程,自动识别项目结构。