Skip to content
This repository has been archived by the owner on Aug 6, 2024. It is now read-only.

vscode 自动升级volar 插件导致的 uni-app-types 类型失效 #43

Closed
4 tasks done
zhuddan opened this issue Apr 28, 2023 · 8 comments
Closed
4 tasks done

Comments

@zhuddan
Copy link

zhuddan commented Apr 28, 2023

描述问题

如题,volar自动升级导致的(1.6.1),除了降低volar版本还有什么办法想请教一下,目测是类型覆盖的问题,详细见bug重现。(ps, Vue.volar 真的是坨屎,更新超级不稳定,而且我从未见过哪个成熟的插件一天可以可以更新几个小版本,几天跟新一个次版本,每次项目出现问题都以为是自己的问题或者其他第三方库的问题,结果每次罪魁祸首都是这个b,扯多了)。

复现

包管理工具 pnpm且配置了 .npmrc

shamefully-hoist = true

公共配置 tsconfig.ts

{
  "extends": "@vue/tsconfig/tsconfig.json",
  "compilerOptions": {
    "sourceMap": true,
    "lib": ["esnext", "dom"],
    "resolveJsonModule": true,
    "types": [
      "@dcloudio/types",
      "@uni-helper/uni-app-types",
      "@uni-helper/uni-ui-types"
    ]
  },
  "vueCompilerOptions": {
    "nativeTags": ["block", "component", "template", "slot"]
  }
}

项目配置

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.d.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "auto-imports.d.ts",
    "vite.config.ts"
  ]
}
  <button
        class="login-button"
        type="primary"//不能将类型“"primary"”分配给类型“"button" | "submit" | "reset" | undefined”。ts(2322)runtime-dom.d.ts(541, 3): 所需类型来自属性 "type",在此处的 "ButtonHTMLAttributes & ReservedProps & Record<string, unknown>" 类型上声明该属性
        :loading="loading" 
        :disabled="disabled"
        @click="handleLogin"
      >
        登录
  </button>

截两张图说明
48fe083c9514d6db5eb2d1c5a13b2e7

dfe55e9d06bf0e1c7efb9ec5c34041b

button的定义看是@vue/runtime-dom.d.ts 覆盖了uni-app-types类型,但是在valor1.2版本(1.4版本也不会,目测,家里的好像是这个版本)且tsconfig等配置均未修改,就不会

请问除了固定版本有什么其他办法么,我始终觉得是valor强行覆盖了uni-app-types,按照tsconfig.json 的配置不应该会发生

系统信息

System:
    OS: Windows 10 10.0.22621
    CPU: (16) x64 12th Gen Intel(R) Core(TM) i7-1260P
    Memory: 3.47 GB / 15.73 GB
  Binaries:
    Node: 14.21.3 - D:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - D:\Program Files\nodejs\yarn.CMD
    npm: 6.14.18 - D:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22621.1555.0), Chromium (112.0.1722.58), ChromiumDev (114.0.1807.1)
    Internet Explorer: 11.0.22621.1

使用的包管理器

pnpm

核对

  • 遵循我们的 行为准则
  • 检查是否已经有一个报告相同错误的问题,以避免重复创建。
  • 这是一个具体的错误。请开启 GitHub 讨论你的疑问。
  • 所提供的复现是这个问题的 最小复现
@ModyQyW
Copy link
Member

ModyQyW commented Apr 28, 2023

刚发了 0.5.6,应该支持 volar 1.6.0 了。请试试升级,升级完 vscode reload window 一下,或者直接退出重开。如果还是有问题踢踢我。 @zhuddan

@zhuddan
Copy link
Author

zhuddan commented Apr 28, 2023

正常工作了,但是button不会像组件一样高亮了,我期望button可以像组件一样高亮,像以前一样,这样我可以在写的时候避免写一些 uni-app 不能识别的组件 例如小程序下的 div , @ModyQyW

@ModyQyW
Copy link
Member

ModyQyW commented Apr 28, 2023

volar 1.6.0 移除了 nativeTags 的支持,所以 view、button、input 这些和 html5 冲突的组件是覆盖原有的类型来实现类型定义,其它不冲突的组件类型定义是增加 @vue/runtime-core GlobalComponents 来实现类型定义。

我在用 GitHub Theme,所有组件都一个色,以我粗浅的 VSCode 经验判断不出来不能高亮是哪里的问题,可能是主题原因,也有可能是识别成原生标签的原因,这方面我有点无能为力 😂

image

@zhuddan
Copy link
Author

zhuddan commented Apr 28, 2023

我一直使用默认的主题
image
像之前只有 template 是蓝色 view image 等都是组件的绿色,
算了,不管了.
ps, 谢谢!

@zhuddan zhuddan closed this as completed Apr 28, 2023
@ModyQyW
Copy link
Member

ModyQyW commented Apr 28, 2023

@zhuddan 刚发布了 0.5.7,可以试试,看看着色和提示是否都正常 :)

@ModyQyW ModyQyW reopened this Apr 28, 2023
@zhuddan
Copy link
Author

zhuddan commented Apr 28, 2023

@ModyQyW 3q

@ModyQyW
Copy link
Member

ModyQyW commented Apr 28, 2023

@zhuddan 一切正常吗?

@zhuddan
Copy link
Author

zhuddan commented Apr 28, 2023

@ModyQyW 已经正常工作了

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants