Mpx tsgo
基于 TypeScript 7(tsgo)的 Mpx 语言支持。在大型 Mpx 项目里打开 .mpx,跳转、补全、类型提示几秒内就能用,同时保留完整的跨文件引用。
为什么需要它
Mpx 官方扩展(mpx-official)通过 tsserver 插件提供类型能力:打开任意一个 .mpx,tsserver 都要先把工程里所有 .mpx 转成 TypeScript、加载整个工程,然后才能回答第一次跳转。项目越大越慢——在一个约 1700 个 .mpx 的项目里,首次跳转要等 20 秒左右,内存超过 2GB。
本扩展改用原生的 TypeScript 7(tsgo)加载同样的全量工程。同一个项目里,打开 .mpx 到首次跳转约 2 秒,之后的跳转、悬浮、查找引用都在几十毫秒内返回。第一次在某个项目里使用时需要先生成缓存,会多几秒(约 1700 个 .mpx 时约 7 秒),之后只处理改动过的文件。
功能
.mpx 的 script 和模板表达式
- 跳转定义、悬浮查看类型、查找引用、重命名
- 补全(含自动导入)、签名提示
- 类型报错、补 import 的快速修复
跨文件
- 从
.ts 查找引用、重命名时,一并覆盖 .mpx 里的用法
模板、样式、JSON(内置 mpx-official 的语言服务,类型信息由 tsgo 提供)
- 模板标签补全(原生组件和
usingComponents 里的子组件)、组件属性和原生属性补全
- JSON 里
usingComponents 的路径补全
<style> 里的 CSS 补全
- 大纲、折叠、语法高亮
使用要求
- macOS(Apple 芯片)。Intel Mac、Windows、Linux 版本后续提供。
- 工作区根目录有
tsconfig.json,并已安装依赖(node_modules 里有 @mpxjs/core)。
.mpx 的 script 使用 lang="ts"。
- 请卸载或禁用 mpx-official。 本扩展已完整替代它;两者同时启用时,mpx-official 的 tsserver 插件仍会全量加载工程,跳转会重新变慢。检测到它仍在启用时,本扩展会提示一键卸载。
状态与命令
- 状态栏左侧显示启动状态和耗时,点击可查看日志。
Mpx tsgo: 重启:重新生成并加载工程。
Mpx tsgo: 查看日志:查看每次请求的耗时。
文件与隐私
- 每个
.mpx 会生成一份对应的 TypeScript「影子文件」,存放在 VS Code 为当前工作区分配的存储目录里,不会写入你的项目。再次打开工作区时只重新生成改动过的文件。
- 与 mpx-official 相同,会在
node_modules/.mpx-global-types/ 下写入全局类型声明。
- 不联网,不收集任何数据。
已知限制
- 快速修复目前主要是补 import;TypeScript 7 暂未提供拼写修复和「提取函数」等重构。
.mpx 里不支持「整理 import」、「抽取为组件」重构、模板里的 @vts-expect-error。
- 从导入方改名时,TypeScript 默认改用别名(
import { 旧名 as 新名 }),只改当前文件;要连定义一起改,请从定义处发起(与 VS Code 自带 TS 的行为一致)。
- JSON 路径补全需在正在输入的路径末尾触发。
许可
本扩展为专有软件,可免费安装使用,许可协议见扩展包内的 LICENSE.md(市场页面右侧的「License」链接)。内置的第三方组件(mpx-official、TypeScript 7 等)按各自的许可证授权,详见扩展包内的 THIRD-PARTY-NOTICES.md。本扩展与 Mpx 官方没有隶属关系。
| |