VSCode 默认不支持 里的 Vue 模板语法高亮,因 Uni-app 的 .vue 文件含小程序等多端特有标签(如 )和指令(如 v-if 编译为 wx:if),原生 Vetur/Volar 无法识别其组件库与别名;需安装 DCloud 官方 uniapp-vscode-extension 插件,并配置 vetur.ignoreProjectWarning: true 及 vetur.grammar.customBlocks 显式声明各平台自定义块为 vue 语法。
为什么默认不支持
里的 Vue 模板语法高亮
VSCode 默认把
文件当标准 Vue 单文件组件处理,但 Uni-app 的
文件实际运行在多端(小程序、H5、App),其模板层存在非标准扩展:比如
、
等自定义标签,以及
在小程序中被编译为
的逻辑。原生 Vetur 或 Volar 都不会主动识别 Uni-app 特有的组件库和指令别名,所以标签不亮、属性无提示、
区域像纯 HTML 一样“哑火”。
必须安装
插件
这是 DCloud 官方维护的插件,专为 Uni-app 场景定制,它不只是加高亮,还做了三件事:注入 Uni-app 组件全局声明、补全
API、适配不同平台的条件编译块(如
)。不装这个,其他配置全是白搭。
在 VSCode 扩展市场搜
,认准发布者是
安装后重启 VSCode,确保状态栏右下角出现
标识
如果项目根目录有
或
,插件会自动激活;否则手动在设置里启用:
要设为
,否则报红
Uni-app 项目结构和标准 Vue CLI 不完全一致(比如没有
或
引入路径),Vetur 会检测到“非标准 Vue 项目”并弹出警告,同时禁用部分功能。这个警告不能点“不再提示”,必须进设置关掉。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
打开 VSCode 设置(
),搜索
勾选它,或在
中加一行:
注意:不是禁用 Vetur,而是让它别因结构差异就罢工——Uni-app 插件依赖 Vetur 的模板解析能力
模板标签仍不亮?检查
配置
Uni-app 允许在
外定义自定义块,比如
或
,这些块默认不被 Vetur 当作 Vue 模板处理,导致里面写的标签没高亮。需要显式告诉 Vetur:“这些块的内容也是 Vue 模板语法”。
在项目根目录的
中添加:
改完保存,重新打开一个
文件,对应平台块内的标签立刻有高亮和属性提示
漏配某个平台(比如忘了
),那个块里就还是白底黑字
Uni-app 的模板提示不是靠“猜”,而是靠插件读取
内置的组件类型定义 + 显式声明语法块作用域。少一步配置,就会卡在某一层——比如 API 补全有了,但
的
属性仍然不提示,大概率是 customBlocks 没对齐当前平台。
.vue.vuev-ifwx:ifuniapp-vscode-extensionuni.#ifdef MP-WEIXINuniapp-vscode-extensionDCloud.ioUni-appunpackage/node_modules/@dcloudio/uni-cli-shared"uniapp.enable": truevetur.ignoreProjectWarningtruevue.config.jsvue.runtime.esm.jsCtrl+,vetur.ignoreProjectWarningsettings.json"vetur.ignoreProjectWarning": truevetur.grammar.customBlocks.vscode/settings.json{
"vetur.grammar.customBlocks": {
"mp-weixin": "vue",
"mp-alipay": "vue",
"mp-baidu": "vue",
"mp-toutiao": "vue",
"app-plus": "vue",
"h5": "vue"
}
}.vuemp-jd@dcloudio/uni-appconfirm-type