Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MiniProgramLab DevtoolNew to Visual Studio Code? Get it now.
MiniProgramLab Devtool

MiniProgramLab Devtool

MiniProgramLab

|
20 installs
| (1) | Free
WXML 高亮补全、组件属性类型与注释悬浮、跨文件定义跳转和居中定位
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MiniProgramLab Devtool

English

面向 VS Code 1.96+ 和 Cursor 的小程序语言工具,提供 WXML 语法高亮、上下文补全、组件属性说明,以及脚本、模板和样式之间的跨文件跳转。

字段 内容
扩展标识符 miniprogramlab.devtool
发布者 miniprogramlab
包名 devtool
显示名称 MiniProgramLab Devtool

安装

在编辑器扩展面板搜索 MiniProgramLab Devtool,或打开 Visual Studio Marketplace 页面、Open VSX 页面。

本地打包版本可通过“从 VSIX 安装”选择生成的文件:

code --install-extension /path/to/devtool-0.0.2.vsix
cursor --install-extension /path/to/devtool-0.0.2.vsix

替换已安装版本后重载编辑器窗口。打开 .wxml 文件,确认语言模式为 WXML。扩展运行于 VS Code 或 Cursor,不安装到微信开发者工具;解析器已内置,无需仅为使用扩展额外安装 TypeScript。

页面组件注册支持 definePageConfig({ page, build, config }) 中的 config.usingComponents,可从同文件、同目录任意脚本以及未保存文档读取。配置与 definePage 共存时,模板数据和方法仍来自页面运行时声明。

WXML 高亮与补全

  • 高亮标签、属性、注释和 {{ }} 表达式,WXSS 复用 CSS 高亮。
  • 将插值边界识别为完整的 WXML 双括号对,表达式内部保留 JavaScript 语法及括号行为。
  • 补全常用原生与 Skyline 标签、公共属性、事件绑定和已注册自定义组件。
  • 根据上下文补全组件属性、data 路径、事件方法、循环局部变量及可用类名。
  • 支持尚未输入完整的标签和属性,并提供准确的替换范围。

属性悬浮与跳转

在自定义组件属性名上悬浮,可查看声明名称、类型、注释和显式默认值:

Component({
  properties: {
    /** 显示在卡片内容上方的标题。 */
    headingText: { type: String, value: '' },
  },
})
<my-card heading-text="{{title}}" />

悬浮 heading-text 时会显示 headingText: string、声明注释和默认值 ''。支持 camelCase、kebab-case 和 model: 属性。注释支持 JSDoc、块注释与行注释,继承及对象展开后的属性保留原始说明。

类型支持原生构造器、构造器别名、optionalTypes 联合类型、PropType<T> 及构造器断言。无法静态确定的运行时类型显示为 unknown,不根据默认值猜测。属性跳转定位到实际声明。

跨文件定义

macOS 使用 Cmd+点击,Windows/Linux 使用 Ctrl+点击,也可按 F12。

起点 目标
WXML 组件标签 实际组件注册声明,或仅有模板的入口文件
自定义属性 属性声明,包括继承来源
事件或表达式绑定 对应方法、data 字段、属性或嵌套成员
wx:for 局部变量 对应循环声明
模板类名 原始样式选择器
样式变量或 mixin 对应作用域中的 Less/SCSS 声明
import 路径 解析后的脚本或样式模块

定义追踪支持静态 ESM 导入与重导出、CommonJS、转发入口、对象或数组展开、多层 Behavior,以及可静态解析的工厂包装。组件解析支持本地路径、目录入口、显式扩展名、TypeScript 别名、pnpm 链接、包内 miniprogram/main 字段,以及条件或通配 exports。

完成定义跳转后,编辑器默认将声明居中显示,同文件跳转同样适用。单纯悬浮查询不会打开文件或移动视口,可通过 skylineMiniapp.centerDefinitions: false 关闭自动居中。

样式

类名补全与跳转覆盖组件同名样式、应用全局样式、显式配置的样式根及递归导入。SCSS 的 &__child 等嵌套选择器可定位到原始声明。

支持 Less @import 与 mixin、SCSS @import/@use/@forward、局部文件、命名空间、转发前缀、show/hide 和局部变量作用域。包样式可通过 Sass/CSS exports 条件解析。

异步组件与构建路径

原生异步组件沿 usingComponents 解析,占位组件保持独立跳转目标:

{
  "usingComponents": {
    "order-card": "/packages/order/components/card/index",
    "loading-card": "/components/loading/index"
  },
  "componentPlaceholder": {
    "order-card": "loading-card"
  }
}

本地源码存在时,order-card 跳到真实组件,loading-card 跳到占位组件。此过程不会执行动态 import 或下载分包。

标准解析无法找到组件时,Devtool 会读取静态工程配置中的别名、源码与产物根目录、复制规则。通过配置导入、字符串表达式、受支持的 Node 路径操作和保留目录结构的复制规则,将产物路径映射回源码;不会执行配置文件,也不会按文件名相似度选择冲突候选。

无法静态解析的目录布局可通过显式映射补充:

{
  "skylineMiniapp.componentRoots": ["packages/shared-mini"],
  "skylineMiniapp.componentAliases": {
    "/generated/widgets": "vendor/widgets",
    "@custom/*": ["packages/custom/src/*"]
  }
}

路径相对于当前文件所属工作区。未保存文档和未保存的配置修改均参与解析。

设置

设置项 默认值 用途
skylineMiniapp.sourceRoot "" 覆盖自动发现的小程序根目录
skylineMiniapp.componentRoots [] 额外组件搜索根目录
skylineMiniapp.componentAliases {} 组件别名,值可为路径或路径数组,支持一个通配符
skylineMiniapp.styleRoots [] 额外全局样式文件或导入根目录
skylineMiniapp.maxFiles 500 单次请求读取文件数上限,可配置范围为 10–5000
skylineMiniapp.centerDefinitions true 实际定义跳转完成后将声明居中

支持范围与限制

Devtool 静态读取源码,不执行应用代码、构建配置或任意工厂函数。运行时生成的组件路径、动态属性名、冲突复制映射、缺失依赖和远程 plugin:// 组件可能无法解析。

当前支持 JavaScript/TypeScript、WXML、WXSS、SCSS、Less;不提供 Pug、Sass 缩进语法、Vue 模板或完整 TypeScript 语言服务。同时启用多个 WXML 提供器可能产生重复补全。

开发

在仓库根目录执行:

pnpm --filter devtool dev
pnpm --filter devtool dev:check
pnpm --filter devtool dev:test
pnpm pack:framework

dev 监听扩展打包,dev:check 检查类型并生成扩展产物,dev:test 验证语言核心。工作区打包命令将 VSIX 写入 artifacts/。

自动发布

独立的 MiniProgramLab/framework 仓库通过 publish-vscode.yml 发布插件。推送 vscode-v<版本号> tag 后,工作流校验版本、运行测试及 dev:check,生成一份 VSIX,再分别发布到 Visual Studio Marketplace 和 Open VSX。其他包的版本 tag 不触发插件发布。

首次使用时,在该仓库的 Settings → Secrets and variables → Actions 添加以下 Repository secrets:

Secret 用途
VSCE_PAT Azure DevOps PAT,需要 Marketplace 的 Manage 权限;对应账号必须有 miniprogramlab 发布者的发布权限
OVSX_PAT Open VSX Access Token;对应账号必须有 miniprogramlab 命名空间的发布权限

发布者和命名空间需提前建立。Open VSX 账号还需关联 Eclipse 账号并签署 Publisher Agreement,操作见 Open VSX 官方发布指南。VS Code 凭据设置见 官方发布指南。该工作流使用 PAT;微软已宣布 Azure DevOps 全局 PAT 将于 2026 年 12 月 1 日退役,届时需要切换为指南中的 Microsoft Entra ID 发布认证。

发版时先修改并提交 vscode/package.json 的 version,再在 framework 仓库根目录执行与之匹配的 tag,例如版本为 0.0.3 时:

git tag vscode-v0.0.3
git push origin vscode-v0.0.3

目前仅接受 主版本.次版本.修订版本 格式的正式版本,不接受 -beta 等预发布版本。工作流不会自动改版本或创建提交;tag 与清单不一致时会停止。workflow 文件、版本更新和插件源码必须包含在该 tag 指向的提交中。

两个市场使用独立任务;某个市场失败时,可在 Actions 中选择 Re-run failed jobs。已经发布的同版本会跳过,不能用同版本覆盖已发布内容。打包结果作为工作流 artifact 保留 14 天;超过保留期需重新运行整个工作流以生成 VSIX。

首次配置时可在 Actions 的“发布 VS Code 插件”工作流中点击 Run workflow。手动运行仅验证并生成 VSIX,不读取市场凭据或发布版本。当前微软开通流程要求新 Azure DevOps 组织关联 Azure 订阅;如果没有可用订阅,需要先由账号持有人完成订阅开通,或使用已有组织生成 VSCE_PAT。

采用 Apache-2.0,内置依赖相关声明见 NOTICE。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft