uni_modules CLI 覆盖插件开发的完整流程:新建插件、发布新版本、维护市场资料、安装插件依赖、发布前校验,以及从插件市场下载、更新和查看项目中的插件。
D:\projects\my-uniappx 请替换为实际项目路径;插件 ID 统一写作 yourname-demo,其中 yourname 是作者 ID 占位符。| 命令 | 用途 | 需要登录插件作者账号 |
|---|---|---|
--create | 新建 uni_modules 插件 | 否 |
--publish | 发布插件到插件市场 | 是 |
--updateInfo | 修改已发布插件的基本信息 | 是 |
--install | 安装插件声明的依赖 | 是 |
--download | 从插件市场下载插件到项目 | 是 |
--upgrade | 从插件市场更新项目中的插件 | 是 |
--list | 查看项目中已安装的插件 | 否 |
除
--list外,其余命令都需要用--project指定项目绝对路径;一次只能执行一个命令。
| 参数 | 说明 |
|---|---|
--project <路径> | 项目绝对路径;除 --list 外必填 |
--json | 只输出一条稳定的 JSON 结果,不输出进度日志,适合 CI/CD 读取 |
--dryRun | 只做校验和打包,不提交市场数据、不写入项目;--create、--publish、--updateInfo 支持 |
--force | 允许覆盖发生冲突的已有插件文件;--download、--upgrade、--install 支持 |
命令还支持少量供调用方(如 HBuilder V)使用的内部参数,用于按调用环境组织提示文案;这些参数不在帮助中列出,命令行用户按本文说明使用即可。
cli uni_modules --create <插件ID> --template <模板类型> --project <项目路径> [--dryRun] [--json]
| 参数 | 说明 |
|---|---|
--create <插件ID> | 必填。插件 ID,格式为「作者ID-插件英文名称」,只允许英文、数字、下划线和连字符 |
--template <模板类型> | 必填。模板类型见下表 |
--project <项目路径> | 必填。项目绝对路径 |
| 模板类型 | 插件分类 |
|---|---|
component-vue | 前端组件-vue 组件 |
component-mp | 前端组件-小程序组件 |
sdk-js | JS SDK |
uts | UTS 插件-API 插件 |
component-uts | UTS 插件-uni-app 兼容模式组件 |
uts-vue-component | UTS 插件-标准模式组件(仅 uni-app x) |
uniapp-template-page | 前端页面模板 |
unicloud-template-function | 云函数模板 |
unicloud-template-page | 云端一体页面模板 |
unicloud-admin | uniCloud Admin 插件 |
unicloud-database | DB Schema 及验证函数 |
uasm | UASM 插件(仅 uni-app x) |
# 新建一个 vue 组件插件
cli uni_modules --create yourname-demo --template component-vue --project D:\projects\my-uniappx
# 新建 UTS API 插件
cli uni_modules --create yourname-uts --template uts --project D:\projects\my-uniappx
cli uni_modules --publish <插件ID> --project <项目路径> [--changeLog <更新日志>] [--example] [--dryRun] [--json]
| 参数 | 说明 |
|---|---|
--publish <插件ID> | 必填。需要发布的本地插件 ID |
--changeLog <更新日志> | 指定本次更新日志;不指定时使用插件根目录 changelog.md 中的内容 |
--example | 同时打包示例工程 |
--dryRun | 执行校验和打包,但不提交市场数据 |
# 发布新版本,更新日志取自 changelog.md
cli uni_modules --publish yourname-demo --project D:\projects\my-uniappx
# 直接指定本次更新日志
cli uni_modules --publish yourname-demo --project D:\projects\my-uniappx --changeLog "修复登录态失效后无法跳转的问题"
发布前会依次执行本地校验和服务端校验,不通过时一次性列出全部问题与处理建议,常见校验项:
| 校验项 | 要求 |
|---|---|
| 清单信息 | package.json 的 id、displayName、version、description、keywords、dcloudext.type 不能为空 |
| 合规声明 | dcloudext.declaration.permissions、.data、.ads 必须填写;无对应内容时也要写明「无」 |
| 兼容性 | 按插件分类校验「支持的 uni-app 版本」「最低兼容版本号」等 |
| 插件文件 | readme.md 使用说明不少于 30 个字符;changelog.md 需包含当前版本的更新日志 |
| 特殊分类 | uasm(UASM 插件)必须声明 dcloudext.vapor 为 "√"(支持蒸汽模式) |
cli uni_modules --updateInfo <插件ID> --project <项目路径> [--dryRun] [--json]
修改已发布插件的基本信息,参数与 --publish 一致。
# 下载插件到项目
cli uni_modules --download <插件ID> --project <项目路径> [--version <版本>] [--extType <类型>] [--noDeps] [--force] [--json]
# 更新项目中的插件
cli uni_modules --upgrade <插件ID> --project <项目路径> [--force] [--json]
cli uni_modules --install <插件ID> --project <项目路径> [--force] [--json]
cli uni_modules --list --project <项目路径> [--json]
# 命令总览
cli uni_modules --help
# 指定命令的完整用法
cli uni_modules --publish help
发布等命令使用 --json 时只输出一条 JSON,便于脚本解析。
执行成功:
{"success":true,"result":{"action":"publish","pluginId":"yourname-demo","version":"1.0.1","outcome":"published"}}
执行失败:
{"success":false,"error":{"code":"SERVER_REJECTED","stage":"submit","message":"插件发布失败。","suggestion":"请根据服务端提示修正插件信息;确认版本未发布后再重试。","issues":[]}}