问题描述

在使用vite + ts的进行开发时,在配置好了tsconfig.json和vite.config.ts之后,在vue文件中可以使用@/别名,但是在ts文件中无法使用,会爆错:vite+ts 找不到模块“@/views/index.vue”或其相应的类型声明。ts(2307)。

不正确的做法

在互联网上,你能看见很多博客、或问答,给你的答案是:在根目录下新增一个vue.d.ts文件来声明vue类型,写如下的代码:

declare module '*.vue' {
    import type { DefineComponent } from 'vue'
    const component: DefineComponent<{}, {}, any>
    export default component
 }

但这种做法无异于自欺欺人,饮鸩止渴,这样做之后你会发现vscode其实无法找到vue模块对应的位置,用Ctrl + 鼠标左键无法跳转(只会跳转到vue.d.ts文件),即便你写错了路径,也不会报错。

正确的做法

不仅仅要配置tsconfig.json,还需要配置tsconfig.app.json和tsconfig.node.json,里面都要加上如下配置:

"compilerOptions": {
	// ... 其他配置
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"],
    },
  },

如果还没有解决,可以尝试安装vscode拓展:TypeScript Vue Plugin (Volar)。
在这里插入图片描述

修改完成后重启vscode。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐