Skip to content

detectProjectType

检测 UniApp 项目类型,判断是 HBuilderX 工程还是 CLI 工程。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.joinPath['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'
}

参数

参数名类型必填说明
projectPathstring项目路径
depsDetectProjectTypeDeps依赖注入对象

返回值

类型说明
ProjectTypeResult项目类型检测结果

工作原理

  1. 检查 manifest.json:在 src 目录或根目录查找 manifest.json
  2. 检查 pages.json:在 src 目录或根目录查找 pages.json
  3. 检测项目类型
    • HBuilderX 工程:存在 .hbuilderx 目录或 uni_modules 目录
    • CLI 工程:存在 package.jsonnode_modules 目录,或存在构建配置文件
  4. 返回结果:包含是否为 UniApp 项目、项目类型、配置文件路径等信息

支持检测 HBuilderX 工程和 CLI 工程,自动识别项目结构。