uni-helper / uni-app-types

为 uni-app 内置组件提供 TypeScript 类型
https://uni-helper.js.org/uni-app-types
MIT License
81 stars 14 forks source link

webstorm 类型提示不出来 #56

Closed zws-code closed 10 months ago

zws-code commented 10 months ago

描述问题

webstorm 2023.2 版本后 已经内置volar了 https://cn.vuejs.org/guide/typescript/overview.html#ide-support 按照教程已修改完配置 同一个项目 vscode 有提示

image

webstorm提示不出来.

image

不知道什么原因

复现

webstorm 2023.2.4版本

image

系统信息

System:
    OS: macOS 14.1
    CPU: (10) arm64 Apple M1 Max
    Memory: 298.42 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 21.1.0 - /opt/homebrew/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 10.2.0 - /opt/homebrew/bin/npm
    pnpm: 8.9.2 - /opt/homebrew/bin/pnpm
    Watchman: 2023.10.23.00 - /opt/homebrew/bin/watchman
  Browsers:
    Chrome: 118.0.5993.117
    Safari: 17.1

使用的包管理器

pnpm

核对

ModyQyW commented 10 months ago
image image image

在我的本地项目无法复现,请提供一个最小复现。如果可以,也麻烦提供下 WebStorm 的配置。🙏

我在尝试复现时发现另外的问题:template 内元素属性无法正常推导类型,在 script 标签内定义的方法在 template 内也无法正常推导类型。既然这些东西在 VSCode 都是正常的,而且非 uni-app 项目在 WebStorm 里也是正常的,我感觉是 WebStorm 本身支持不足的问题。

image image image
zws-code commented 10 months ago

@ModyQyW 最小复现步骤 参考uniapp 官方拉一个vue3 ts 模板 然后再添加本库 types 1 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project 2 pnpm add -D @uni-helper/uni-app-types 修改tsconfig.json 和 .npmrc 其他都没用动了 webstorm还是一样 无法提示.... vscode 依然可以 很邪门 另外 webstorm 的配置我不太清楚怎么提供

tsconfig.json { "extends": "@vue/tsconfig/tsconfig.json", "compilerOptions": { "sourceMap": true, "baseUrl": ".", "paths": { "@/": ["./src/"] }, "lib": ["esnext", "dom"], "types": [ "@dcloudio/types", "@uni-helper/uni-app-types", ] }, "include": ["src//*.ts", "src/*/.d.ts", "src//*.tsx", "src/*/.vue"], "vueCompilerOptions": { "experimentalRuntimeMode": "runtime-uni-app", "nativeTags": ["block", "component", "template", "slot"] } } .npmrc shamefully-hoist=true

ModyQyW commented 10 months ago
image
zws-code commented 10 months ago

@ModyQyW settings.zip

ModyQyW commented 10 months ago

我的 WebStorm 也是 2023.2.4,导入你的设置后还是不会出现未知 HTML 标记 的提示,实在复现不出来,说不定你重启一下 IDE 重新索引一下就好了。

属性类型推导问题可以肯定是 WebStorm 的问题,需要 WebStorm 解决。

zws-code commented 10 months ago

找到原因了 我尝试了一下 用npm yarn 居然是正常的
对比了一下 node_modules目录 发现pnpm 都是软连接 shamefully-hoist=true 配置 平铺了 node_modules 的结构 但还是软连接 换另一个配置就正常了 node-linker=hoisted https://pnpm.io/zh/npmrc#node-linker https://pnpm.io/zh/npmrc#shamefully-hoist

image image
ModyQyW commented 10 months ago

我这边 pnpm@8.9.2 没有配置 node_linker 也是正常的,只配置了 shamefully-hoist=true,神奇

ModyQyW commented 10 months ago

先关闭这个 issue 了,因为这边对该问题无能为力。🙏