Uni-app Vite 插件使用指南
听云 uni-app Vue3 操作采集编译插件,配合听云 App SDK 或小程序 SDK,为页面和组件模板中的用户操作提供名称信息。
适用范围
适用于使用 Vite 编译的 uni-app Vue3 项目:
- App:Vue/nvue 模板,目标为
app或app-harmony。 - 小程序:微信、百度、支付宝、钉钉、京东、飞书。
插件处理模板中显式绑定的 click、tap 事件,默认启用 click;tap 需通过 action.events 开启。
- App Vue:支持框架识别的内置组件节点,例如
view、text、button。 - App nvue:支持
view、text、image、button等节点;部分内置组件(例如picker、checkbox、slider)暂不插桩。鸿蒙.nvue走 Vue 编译分支时按 App Vue 范围处理。 - 普通自定义组件标签上的事件不插桩,组件内部模板中符合上述条件的节点可以插桩。
组件还需在目标平台支持并实际触发对应事件;插件不会新增业务监听器,也不处理 change、input 等其他事件。Vue2、uni-app x 和普通 Vue/Vite 项目不在处理范围内。
安装向导
1. 安装插件
在项目根目录执行:
npm install --save-dev @tingyun-common/vite-plugin-uniapp
2. 配置插件
按项目创建方式选择下面的接入步骤。CLI 项目即使在 HBuilderX 中打开,仍按 CLI 项目处理。
HBuilderX 创建的项目:没有 Vite 配置
在 manifest.json 同级新建 vite.config.js 或 vite.config.ts,二选一即可。以下以 vite.config.js 为例:
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import { createTingyunUniAppPlugin } from '@tingyun-common/vite-plugin-uniapp'
export default defineConfig({
plugins: [
uni(),
createTingyunUniAppPlugin(),
],
})
项目位置如下:
项目根目录/
├── manifest.json
├── pages.json
├── main.js
├── package.json
└── vite.config.js
保留示例中的 uni(),它负责 uni-app 项目的编译。Vite 和 uni-app 编译依赖由 HBuilderX 提供,无需额外安装。
保存配置后,在 HBuilderX 中重新运行项目即可。Vite 配置说明见 DCloud 文档。
HBuilderX 创建的项目:已有 Vite 配置
打开与 manifest.json 同级的 vite.config.js 或 vite.config.ts,添加下面标有 + 的两行,其他配置保持原样(+ 仅用于标记新增内容,无需复制):
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
+import { createTingyunUniAppPlugin } from '@tingyun-common/vite-plugin-uniapp'
export default defineConfig({
plugins: [
uni(),
+ createTingyunUniAppPlugin(),
// ...其他已有插件
],
})
保存后,在 HBuilderX 中重新运行项目。
CLI 创建的项目
打开与 package.json 同级的 vite.config.js 或 vite.config.ts,添加下面标有 + 的两行,其他配置保持原样(+ 仅用于标记新增内容,无需复制):
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
+import { createTingyunUniAppPlugin } from '@tingyun-common/vite-plugin-uniapp'
export default defineConfig({
plugins: [
uni(),
+ createTingyunUniAppPlugin(),
// ...其他已有插件
],
})
保存后,执行项目原有的 npm 运行或构建命令。
3. 接入目标平台 SDK
编译插件在构建时补充用户操作的采集信息,实际采集和上报由运行时 SDK 完成。请按目标平台接入对应的 SDK:
- App:接入
@tingyun-sdk/uniapp-app,详见该 SDK 的 README。 - 小程序:接入所选平台的听云小程序 SDK,详见该 SDK 的 uni-app 接入文档。
4. 验证接入
- 重新编译,在 HBuilderX 编译控制台或 CLI 终端查看
[tingyun-uniapp-plugin]的[build_end]日志。result=completed且counts中的injected大于0,表示已完成操作插桩。 - 运行项目,点击页面中已有的
@click按钮,等待上报后在听云 Web 控制台查看对应操作。名称规则见下方事件与操作名称。
配置说明
以下类型展示可用配置和默认值。业务项目从包中导入 TingyunUniAppPluginOptions 即可使用类型提示。
type MiniProgramPlatform =
| 'mp-weixin' | 'mp-baidu' | 'mp-alipay'
| 'mp-dingtalk' | 'mp-jd' | 'mp-lark'
type LogLevel = 'error' | 'warn' | 'info' | 'debug'
interface TingyunUniAppPluginOptions {
action?: {
enabled?: boolean // 默认 true
events?: readonly ('click' | 'tap')[] // 默认 ['click'],至少一项
exclude?: readonly string[] // 默认 [],相对于源码根的 glob
miniProgram?: {
enabled?: boolean // 默认 true
platforms?: readonly MiniProgramPlatform[] // 默认全部六端,至少一项
}
app?: {
enabled?: boolean // 默认 true
renderers?: readonly ('vue' | 'nvue')[] // 默认两者,至少一项
}
}
failureMode?: 'continue' | 'throw' // 默认 continue,控制节点处理失败
logging?: {
console?: {
enabled?: boolean // 默认 true
level?: LogLevel // 默认 info
}
file?: {
enabled?: boolean // 默认 false
level?: LogLevel // 默认 debug
directory?: string // 默认 .tingyun/logs,相对项目根或绝对路径
maxFileSize?: number // 默认 5242880 字节,至少 65536
maxBuilds?: number // 默认 10,保留的非活动构建轮数
}
}
}