# uni_modules 插件

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 时只输出一条 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":[]}}