Skip to content
On this page

Anim 调试工具插件

一个为小程序开发提供调试工具的 Anim 插件,支持环境配置切换、请求拦截、自定义请求头、VConsole 调试等功能。

功能特性

  • 环境切换: 支持前端/后端配置环境快速切换
  • 请求拦截: 自动拦截和修改网络请求
  • 自定义请求头: 灵活配置 HTTP 请求头
  • VConsole 集成: 一键开启/关闭调试控制台
  • 请求日志: 详细的网络请求日志记录
  • 快捷访问: 通过多次点击快速进入调试页面

安装

bash
npm install @ssv-lab/anim-plugin-devtool --save

基础用法

1. 注册插件

js
// app.js
import Anim from '@ssv-lab/anim';
import DevtoolPlugin from '@ssv-lab/anim-plugin-devtool';

const configMap = {
  develop: {
    title: '开发环境',
    BASE_URL: 'https://dev-api.example.com',
    FILE_URL: 'https://test-cos.example.com',
  },
  trial: {
    title: '测试环境', 
    BASE_URL: 'https://test-api.example.com',
    FILE_URL: 'https://test-cos.example.com',
  },
  release: {
    title: '生产环境',
    BASE_URL: 'https://api.example.com',
    FILE_URL: 'https://prod-cos.example.com',
  }
}
const {
  miniProgram: { envVersion },
  version,
} = wx.getAccountInfoSync() || {}; 
const config = {
  ...configMap[envVersion],
  version,
  // 其他配置
}

Anim.use(DevtoolPlugin, {
  configMap,
  env: envVersion,// 默认前端环境, 可不传,不传会自动获取当前小程序的版本信息
  homePath: '', // 确定后重启小程序默认跳转首页,可不传,不传为devtool路径
  apiInterceptors: { // 请求拦截默认关闭,开启请求
    enable: false,
    apiKeys: ['BASE_URL']
  }
});

App({
  onLaunch() {
    console.log('App launched');
  }
});

2. 初始化调试页面

运行命令生成调试页面:

bash
npx anim-plugin-devtool init

此命令会:

  • 创建 dev-tool/page/ 目录结构
  • 生成调试页面文件 (index.js, index.json, index.wxml, index.wxss)
  • 自动配置 app.json 的 subpackages

3. 添加快捷入口

在需要调试的页面中添加快捷访问:

js
// pages/index/index.js
import { handleClickByDevTool } from '@ssv-lab/anim-plugin-devtool';

Page({
  data: {
    title: 'Hello World'
  },
  
  // 绑定到某个元素的点击事件
  onTitleTap() {
    handleClickByDevTool(); // 连续点击5次进入调试页面
  }
});
xml
<!-- pages/index/index.wxml -->
<view>
  <text bind:tap="onTitleTap">{{title}}</text>
</view>

配置选项

configMap【必填】

环境配置映射,定义不同环境的 API 地址, 内容可完全自定义:

js
{
  configMap: {
    [环境标识]: {
      title: '环境名称',        // 显示名称
      BASE_URL: 'API地址'      // 后端API地址
    }
  }
}

env【非必填】

指定默认的前端环境标识,对应 configMap 中的 key。

homePath【非必填】

确定后重启小程序默认跳转首页,可不传,不传为devtool路径。

apiInterceptors【非必填】

js
{
  apiInterceptors: { 
    enable: false, // 默认不开启
    apiKeys: ['BASE_URL'] // 代理的api,key
  }
}

是否开启请求拦截器,默认为false,开启后支持用户输入自定义请求api以及请求头

调试页面功能

调试页面提供以下功能模块:

1. 前端环境显示

显示当前小程序的前端环境信息。

2. 后端环境切换

  • 支持在不同后端环境间切换
  • 切换环境会自动清空登录信息
  • 支持自定义环境配置

3. 自定义请求头

json
{
  "Authorization": "Bearer your-token",
  "Custom-Header": "custom-value",
  "BASE_URL": "https://custom-api.example.com"
}

4. VConsole 调试

一键开启/关闭 VConsole 调试工具。

API 说明

handleClickByDevTool(path)

快捷访问调试页面的函数。

  • 参数:
    • path (string, 可选): 调试页面路径,默认为 /dev-tool/page/index
  • 用法: 连续点击5次(2秒内)触发跳转

devToolPlugin 实例方法

js
import devToolPlugin from '@ssv-lab/anim-plugin-devtool';

// 设置自定义请求头
devToolPlugin.setHeaders({
  'Authorization': 'Bearer token',
  'BASE_URL': 'https://custom-api.com'
});

// 切换后端环境
devToolPlugin.changeEnv('trial');

// 跳转调试页面
devToolPlugin.goDevToolPage('/dev-tool/page/index');

// 获取当前后端环境名称
const envName = devToolPlugin.getBackendEnvName();

请求拦截机制

插件会自动拦截所有网络请求并:

  1. URL 替换: 根据当前后端环境替换请求 URL
  2. 请求头注入: 自动添加自定义请求头
  3. 请求日志: 记录详细的请求和响应信息

注意事项

  1. 生产环境: 插件在生产环境(release)下会自动禁用
  2. 存储清理: 切换环境会清空部分本地存储,但保留调试工具相关配置
  3. 请求格式: 自定义请求头必须是有效的 JSON 格式
  4. 快捷访问: 需要在2秒内连续点击5次才能触发调试页面跳转

常见问题

Q: 为什么调试页面无法访问?

A: 确保已运行 npx anim-plugin-devtool init 命令生成调试页面。

Q: 环境切换后请求还是指向原环境?

A: 检查 configMap 配置是否正确,确保 BASE_URL 格式正确。

Q: 自定义请求头不生效?

A: 确保 JSON 格式正确,检查调试页面是否有错误提示。

Released under the MIT License.