{"id":42521456,"url":"https://github.com/ohosvscode/project-detector","last_synced_at":"2026-01-28T15:19:51.495Z","repository":{"id":319673101,"uuid":"1068873995","full_name":"ohosvscode/project-detector","owner":"ohosvscode","description":"Hvigor Project Finder analyzer 🔍 Specify a base working directory, scan all HarmonyOS projects ✨ written in Rust, provide NAPI bindings to TypeScript ✊ Hvigor 项目查找分析器 🔍 指定一个基础工作目录，扫描此目录下所有鸿蒙工程 ✨ Rust编写，提供 NAPI 绑定到TypeScript ✊","archived":false,"fork":false,"pushed_at":"2026-01-20T03:54:45.000Z","size":641,"stargazers_count":3,"open_issues_count":13,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-20T10:42:52.278Z","etag":null,"topics":["harmonyos","harmonyos-next","huawei","hvigor"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ohosvscode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T03:34:39.000Z","updated_at":"2026-01-08T07:35:20.000Z","dependencies_parsed_at":"2025-12-31T18:01:36.353Z","dependency_job_id":null,"html_url":"https://github.com/ohosvscode/project-detector","commit_stats":null,"previous_names":["ohosvscode/project-detector"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/ohosvscode/project-detector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohosvscode%2Fproject-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohosvscode%2Fproject-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohosvscode%2Fproject-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohosvscode%2Fproject-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohosvscode","download_url":"https://codeload.github.com/ohosvscode/project-detector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohosvscode%2Fproject-detector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["harmonyos","harmonyos-next","huawei","hvigor"],"created_at":"2026-01-28T15:19:51.434Z","updated_at":"2026-01-28T15:19:51.484Z","avatar_url":"https://github.com/ohosvscode.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" style=\"margin-top: 24px;\"\u003e\n\n![ArkTS Project Detector](https://github.com/ohosvscode/project-detector/blob/main/logo.svg?raw=true)\n\n# ArkTS Project Detector\n\n\u003c/div\u003e\n\n\u003e 准确的来说，这应该是一个 Hvigor Project Detector. (QWQ)\n\n指定一个基础的工作目录，扫描这个目录下的所有鸿蒙工程。\n\n提供`napi`绑定，用于在 Node.js 中使用。\n\n## 安装 ⏬\n\n```bash\npnpm install @arkts/project-detector\n```\n\n现代包管理器（如`pnpm`）会自动下载当前您计算机架构和系统的二进制绑定，无需担心兼容性问题。如果您的 `node_modules` 需要用于打包，则推荐把所有的相关依赖都装上，或者使用 `pnpm install --force` 安装依赖。\n\n## 📦 关于 `bundled` 包\n\n`bundled` 包将node.js层的封装包含 `node_modules` 中的依赖一起打包，可以直接在 `Node.js` / `Bun` 中直接导入使用（可以无需依赖安装），避免了依赖安装不全的问题。导入直接改为这样即可：\n\n```ts\nimport { ProjectDetector } from '@arkts/project-detector/bundled'\n```\n\n## 使用 📝\n\n```ts\nimport { Module, Project, ProjectDetector } from '@arkts/project-detector'\n\nconst projectDetector = ProjectDetector.create(/** 基础工作目录 */)\n// 扫描当前工作目录下的所有鸿蒙工程\nconst projects = Project.findAll(projectDetector)\n// 扫描当前鸿蒙工程下的所有模块\nconst modules = projects[0] \u0026\u0026 Module.findAll(projects()[0])\n// 扫描当前鸿蒙工程下的所有产品\nconst products = modules[0] \u0026\u0026 Product.findAll(modules()[0])\n// ...\n```\n\n更多API请参考声明文件。\n\n## 注意事项 ⚠️\n\n本库使用 `TypeScript` 包裹了一层Rust的API，在Rust的API基础上提供了一个基于 `mitt` + `alien-signals` 的文件事件系统，用于监听文件的创建、修改、删除事件，并即时地动态更新每个对象数据。\n\n您可以使用内置的 `chokidar` 直接监听文件事件，也可以自己调用 `mitt` 的 `emit` 方法处理文件事件。比如在[ohosvscode/arkTS](https://github.com/ohosvscode/arkTS)的语言服务器中，我们使用vscode内置的文件系统监听器，将事件发送到`language-server`进程中并传给了`ProjectDetector`实例。\n\n![Alt](https://repobeats.axiom.co/api/embed/185238ec9e854ad550585f96f1707b5951492026.svg \"Repobeats analytics image\")\n\n## Contact to Author 📧\n\n- Telegram: [@GCZ_Zero](https://t.me/GCZ_Zero)\n- X (Twitter): [@GCZ_Zero](https://x.com/GCZ_Zero)\n- QQ: 1203970284，QQ群: 746153004\n- WeChat: gcz-zero\n\n## License 📜\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohosvscode%2Fproject-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohosvscode%2Fproject-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohosvscode%2Fproject-detector/lists"}