{"id":51175506,"url":"https://github.com/junerver/uts-plugin-cli","last_synced_at":"2026-06-27T03:30:52.108Z","repository":{"id":363540261,"uuid":"1263690194","full_name":"junerver/uts-plugin-cli","owner":"junerver","description":"UTS 插件管理工具 - 从 GitHub 仓库安装 uni-app 原生插件","archived":false,"fork":false,"pushed_at":"2026-06-09T11:08:08.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-09T11:15:29.136Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junerver.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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":"2026-06-09T07:18:49.000Z","updated_at":"2026-06-09T11:09:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/junerver/uts-plugin-cli","commit_stats":null,"previous_names":["junerver/uts-plugin-cli"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/junerver/uts-plugin-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junerver%2Futs-plugin-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junerver%2Futs-plugin-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junerver%2Futs-plugin-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junerver%2Futs-plugin-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junerver","download_url":"https://codeload.github.com/junerver/uts-plugin-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junerver%2Futs-plugin-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34840899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-27T03:30:50.990Z","updated_at":"2026-06-27T03:30:52.100Z","avatar_url":"https://github.com/junerver.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UTS Plugin CLI\n\nUTS 插件管理工具 - 从 GitHub/Gitee 仓库安装 uni-app 原生插件\n\n## 功能特性\n\n- **插件管理** - 安装、卸载、升级插件\n- **插件搜索** - 按关键词搜索插件\n- **插件详情** - 查看插件详细信息\n- **外部文件关联** - 自动合并鸿蒙配置文件\n- **双仓库支持** - 支持 GitHub 和 Gitee\n- **智能降级** - 自动尝试多个下载源\n\n## 安装\n\n```bash\nnpm install -g @junerver/uts-plugin-cli\n```\n\n或者直接使用 npx：\n\n```bash\nnpx @junerver/uts-plugin-cli \u003ccommand\u003e\n```\n\n## 使用方法\n\n### 列出可用插件\n\n```bash\nnpx @junerver/uts-plugin-cli list\n```\n\n### 安装插件\n\n在 uni-app 项目根目录下执行：\n\n```bash\nnpx @junerver/uts-plugin-cli install \u003cplugin-name\u003e\n```\n\n示例：\n\n```bash\ncd my-uni-app\nnpx @junerver/uts-plugin-cli install jkr-abc-epay\n```\n\n安装时如果插件包含外部文件（如鸿蒙配置文件），会提示选择处理方式：\n- **merge** - 深度合并（推荐），智能合并配置项\n- **overwrite** - 完全覆盖现有文件\n- **skip** - 跳过不处理\n\n使用 `--force` 参数可跳过交互提示，自动使用插件指定的默认策略：\n\n```bash\nnpx @junerver/uts-plugin-cli install jkr-abc-epay --force\n```\n\n### 卸载插件\n\n```bash\nnpx @junerver/uts-plugin-cli uninstall \u003cplugin-name\u003e\n```\n\n卸载时会自动检测并移除外部文件变更（如鸿蒙配置文件）。\n\n强制卸载（不提示确认）：\n\n```bash\nnpx @junerver/uts-plugin-cli uninstall \u003cplugin-name\u003e --force\n```\n\n### 升级插件\n\n```bash\nnpx @junerver/uts-plugin-cli update \u003cplugin-name\u003e\n```\n\n### 查看已安装插件\n\n```bash\nnpx @junerver/uts-plugin-cli list --installed\n```\n\n### 搜索插件\n\n```bash\nnpx @junerver/uts-plugin-cli search \u003ckeyword\u003e\n```\n\n示例：\n\n```bash\nnpx @junerver/uts-plugin-cli search epay\n```\n\n输出示例：\n\n```\n搜索结果：找到 1 个插件\n仓库：junerver/UtsPlugins\n\n  名称                    版本      描述\n  ─────────────────────────────────────────────────────────\n  jkr-abc-epay            1.0.4     农行e支付鸿蒙SDK封装，支持农行掌银支付功能\n```\n\n### 查看插件详情\n\n```bash\nnpx @junerver/uts-plugin-cli info \u003cplugin-name\u003e\n```\n\n示例：\n\n```bash\nnpx @junerver/uts-plugin-cli info jkr-abc-epay\n```\n\n输出示例：\n\n```\n插件详情\n──────────────────────────────────────────────────\n\n名称：jkr-abc-epay\n版本：1.0.4\n描述：农行e支付鸿蒙SDK封装，支持农行掌银支付功能\n安装状态：未安装\n\n包含文件：\n  - changelog.md\n  - package.json\n  - readme.md\n  - utssdk/app-harmony/index.uts\n  ...\n```\n\n## 命令别名\n\n| 命令        | 别名 |\n| ----------- | ---- |\n| `install`   | `i`  |\n| `uninstall` | `rm` |\n| `update`    | `u`  |\n| `list`      | `ls` |\n| `search`    | `s`  |\n\n示例：\n\n```bash\nnpx @junerver/uts-plugin-cli i jkr-abc-epay\nnpx @junerver/uts-plugin-cli rm jkr-abc-epay\nnpx @junerver/uts-plugin-cli u jkr-abc-epay\nnpx @junerver/uts-plugin-cli ls\nnpx @junerver/uts-plugin-cli s epay\nnpx @junerver/uts-plugin-cli info jkr-abc-epay\n```\n\n## 仓库源配置\n\nCLI 支持从 GitHub 或 Gitee 下载插件，默认自动选择（GitHub 优先）。\n\n指定仓库源：\n\n```bash\n# 从 GitHub 获取（默认）\nnpx @junerver/uts-plugin-cli list --source github\n\n# 从 Gitee 获取\nnpx @junerver/uts-plugin-cli list --source gitee\n```\n\n所有命令都支持 `--source` 参数：\n\n```bash\nnpx @junerver/uts-plugin-cli install jkr-abc-epay --source gitee\nnpx @junerver/uts-plugin-cli search epay --source gitee\nnpx @junerver/uts-plugin-cli info jkr-abc-epay --source gitee\n```\n\n## 网络代理\n\n如果无法访问 GitHub，可设置 HTTP 代理：\n\n### PowerShell\n\n```powershell\n$Env:HTTPS_PROXY=\"http://127.0.0.1:7890\"\nnpx @junerver/uts-plugin-cli list\n```\n\n### CMD\n\n```cmd\nset HTTPS_PROXY=http://127.0.0.1:7890\nnpx @junerver/uts-plugin-cli list\n```\n\n### Linux/Mac\n\n```bash\nexport HTTPS_PROXY=http://127.0.0.1:7890\nnpx @junerver/uts-plugin-cli list\n```\n\n## 插件来源\n\n所有插件来自 GitHub 仓库：[junerver/UtsPlugins](https://github.com/junerver/UtsPlugins)\n\nGitee 镜像：[junerver/UtsPlugins](https://gitee.com/junerver/UtsPlugins)\n\nCLI 通过读取仓库根目录的 `plugins.json` 文件获取插件列表和文件信息。\n\n## 下载优先级\n\nCLI 会按以下顺序尝试下载，成功后停止：\n\n1. **GitHub 直连** - `raw.githubusercontent.com`\n2. **GitHub 代理** - `ghp.ci`\n3. **GitHub 代理** - `raw.gitmirror.com`\n4. **Gitee** - `gitee.com`\n\n使用 `--source` 参数可强制指定仓库源（见 [仓库源配置](#仓库源配置)）。\n\n## 自动化流程\n\nUtsPlugins 仓库配置了 **husky + pre-commit hook**，每次提交时会自动：\n\n1. 检测 `uni_modules/` 目录是否有变更\n2. 如果有变更，自动运行 `scripts/generate-manifest.js`\n3. 更新 `plugins.json` 文件并添加到暂存区\n\n**开发者只需正常提交代码，plugins.json 会自动同步。**\n\n## 添加新插件\n\n1. 在 `uni_modules/` 目录下创建新插件\n2. 正常提交代码\n3. pre-commit hook 会自动更新 `plugins.json`\n\n无需手动维护文件清单！\n\n## 私有仓库\n\n对于私有仓库，需要提供 GitHub token：\n\n```bash\n# 通过命令行参数\nnpx @junerver/uts-plugin-cli install jkr-abc-epay --token ghp_xxxx\n\n# 通过环境变量\nexport GITHUB_TOKEN=*** npx @junerver/uts-plugin-cli install jkr-abc-epay\n```\n\n## 注意事项\n\n1. **必须在 uni-app 项目根目录下执行安装命令**（需要有 `manifest.json` 或 `pages.json` 文件）\n2. 安装后的插件位于项目的 `uni_modules/` 目录下\n3. 使用插件时需要添加条件编译指令：\n\n```typescript\n// #ifdef APP-HARMONY\nimport { xxx } from \"@/uni_modules/plugin-name\";\n// #endif\n```\n\n## 外部文件关联\n\n某些插件（如鸿蒙SDK插件）需要修改项目根目录下的配置文件。CLI支持声明外部关联文件，安装时自动处理合并。\n\n### 目录结构\n\n插件仓库中的目录结构：\n\n```\nuni_modules/jkr-abc-epay/\n├── .uts-plugin.json          # 外部文件声明（可选）\n├── _external/                # 外部文件存储目录（约定）\n│   └── module.json5          # 外部配置文件片段\n├── utssdk/                   # 插件自身文件\n└── package.json\n```\n\n- `_external` 目录：约定的外部文件存储目录，**不会收录到 `files` 中**\n- `.uts-plugin.json`：声明外部文件的处理规则\n- **安装后会自动清理** `_external` 目录和 `.uts-plugin.json` 文件\n\n### 配置格式\n\n插件目录下创建 `.uts-plugin.json` 文件：\n\n```json\n{\n  \"externalFiles\": [\n    {\n      \"source\": \"module.json5\",\n      \"target\": \"harmony-configs/entry/src/main/module.json5\",\n      \"strategy\": \"merge\",\n      \"description\": \"配置ACL 受限权限\",\n      \"arrayKeys\": [\"module.querySchemes\"]\n    }\n  ]\n}\n```\n\n### 字段说明\n\n| 字段 | 说明 |\n|------|------|\n| `source` | 源文件路径（相对于插件的 `_external` 目录） |\n| `target` | 目标文件路径（相对于项目根目录） |\n| `strategy` | 默认处理策略：`merge`（合并）、`overwrite`（覆盖） |\n| `description` | 文件描述（可选） |\n| `arrayKeys` | 需要追加去重的数组键名（仅 merge 策略生效）。**为空或不填时，合并全部字段** |\n\n### arrayKeys 说明\n\n`arrayKeys` 支持嵌套路径，使用点号分隔：\n\n```json\n{\n  \"arrayKeys\": [\"module.querySchemes\"]\n}\n```\n\n- `\"module.querySchemes\"`：表示 `module` 对象下的 `querySchemes` 数组需要去重追加\n- 为空数组 `[]` 或不填时：所有数组字段都会去重追加\n\n### 路径解析规则\n\n| 字段 | 路径起点 | 示例 |\n|------|----------|------|\n| `files[].path` | 插件目录 | `utssdk/app-harmony/config.json` |\n| `externalFiles[].source` | 插件的 `_external` 目录 | `module.json5` |\n| `externalFiles[].target` | 项目根目录 | `harmony-configs/entry/src/main/module.json5` |\n\n### 支持的配置文件\n\n目前主要支持鸿蒙系统的 json5 格式配置文件：\n\n1. `/harmony-configs/oh-package.json5` - 项目依赖文件\n2. `/harmony-configs/build-profile.json5` - 数字签名配置\n3. `/harmony-configs/entry/src/main/module.json5` - ACL 权限配置\n4. `/harmony-configs/AppScope/app.json5` - 应用名称和版本信息\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunerver%2Futs-plugin-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunerver%2Futs-plugin-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunerver%2Futs-plugin-cli/lists"}