# CLI 命令行

HBuilder V 内置命令行工具 cli,它以后台无头模式运行,让开发者可以在终端、脚本或 CI 中完成登录、项目、运行、打包、发行等操作。

本文所有示例均以 cli 代替不同平台下的实际文件名(Windows 为 cli.cmd),请根据实际安装情况替换。

版本要求:cli 命令行工具自 HBuilder V 5.36 起提供,请先将 HBuilder V 升级到 5.36 及以上版本后再使用。

# 无头模式

cli 以无头(headless)模式运行:执行命令时不会为命令打开 HBuilder V 的图形界面,命令在后台完成,结果直接输出到当前终端。因此它适合在脚本、CI、以及没有图形界面的服务器等环境中使用。

无头模式指 CLI 本身不依赖图形界面,并不代表完全不依赖 HBuilder V——命令仍由本机的 HBuilder V 程序在后台执行。

# 理解 CLI 与 IDE 的关系

cli 与 HBuilder V 的界面(IDE)是两套上下文。二者的影响是单向的:

  • CLI 的操作不会改变 IDE:通过 CLI 登录、导入项目、写入配置,都只作用于 CLI 自身,不会反映到 IDE 界面里;
  • IDE 的状态会同步给 CLI:IDE 中的变更(如登录、登出、切换账号)会同步到 CLI,供 CLI 执行时使用。

也就是说,账号、项目、配置等不会在两端双向同步,但 IDE 一侧的变化会影响 CLI。具体到各命令:

  • 账号登录:同步是单向的。在 IDE 中登录 / 登出会同步到 CLI(CLI 下次启动即为已登录,CLI 正在运行时也会同步更新登录状态);而 cli user login / cli user logout 只影响 CLI 自身,不会改变 IDE 中的账号;
  • 项目操作:cli project 导入的项目属于 CLI 自身的项目列表,不会打开、也不影响 IDE 中已打开的项目;
  • 配置项:cli config 的读写只作用于 CLI 自身,不会改变 IDE 的设置。

# cli 程序位置

HBuilder V 基于 VS Code 内核,cli 位于应用安装目录的 bin 目录下:

平台 cli 位置
macOS(正式版) /Applications/HBuilderV.app/Contents/Resources/app/bin/cli
macOS(Alpha 版) /Applications/HBuilderV-Alpha.app/Contents/Resources/app/bin/cli
Windows HBuilder V 安装目录下的 bin\cli.cmd

其它平台的完整安装路径以实际安装目录为准。

你也可以把 cli 加入环境变量,这样在任意目录、任意终端都能直接调用,详见 配置环境变量。

# 启动与关闭

# 启动
cli open

# 关闭
cli app quit

# 查看帮助与版本

# 查看全部命令与参数
cli --help

# 查看 cli 版本号
cli ver

各命令的可用参数以 cli <命令> --help 的输出为准。

# 适用项目与平台

CLI 的运行、发行等命令面向 uni-app x(蒸汽模式)项目,支持的平台如下:

项目类型 支持的平台
uni-app x app-android / app-ios / app-harmony / web / mp-weixin

# 命令总览

# 基础

命令 说明
账号登录 登录、退出、查看当前账号
项目操作 导入、关闭、列出项目
配置项 获取、设置配置项
配置环境变量 把 cli 加入 PATH,便于随处调用

# 运行

命令 说明
运行 - 手机或模拟器 运行到 Android / iOS / 鸿蒙
运行 - 网站 运行到 Web / 手机 H5
运行 - 微信小程序 运行到微信小程序
运行日志 查看运行日志
运行时截图 对运行中的项目截图
获取设备列表 列出可用设备

# 发行

命令 说明
App 云打包 Android / iOS 云端打包
App 本地打包资源 生成本地打包 App 资源
制作 wgt 包 生成应用资源包,用于热更新
鸿蒙本地打包 鸿蒙本地打包与资源导出
Web / H5 编译网站并可上传前端网页托管
微信小程序 编译并上传微信小程序

# 云服务与插件

命令 说明
uniCloud 云函数、公共模块、Schema 等
前端网页托管 上传、列举、删除托管文件
uni_modules 插件的创建、发布、下载等

# 调试与编译

命令 说明
蒸汽模式 DevTools 无头调试 uni-app x App
重启应用 重启设备上运行的 App
UTS 插件编译 编译 Android / iOS 平台的 UTS