Vite创建Vue3项目识别 ../ 与 @/ 引入路径

在使用vite脚手架生成项目时,会出现一些引入路径失败的错误

例子:router中用 component引入路径时

引入 ../ 路径失败

  • 找不到模块“../views/login/index.vue”或其相应的类型声明

    {
        path: "/login",
        name: "login",
        component: () => import("../views/login/index.vue")
    },

此时就是没有声明引入地址的方法

  • 解决方法

  1. 找到 vite-env.d.ts

  2. 复制以下代码进入

//vue类型声明,让TS知道 .vue文件是什么
 declare module "*.vue" {
     import type { DefineComponent } from "vue";
     const component: DefineComponent<{}, {}, any>;
     export default component;
 }

引入 @/ 路径失败

  • 出现报错: ts类型错误提示找不到模块“path”或其相应的类型声明

  • 解决方法

1.安装 npm i @types/node -D

2.配置vite.config.ts

import path from 'path'
​
export default defineConfig({
  plugins: [vue()],
  resolve:{
    alias:{
      "@":path.resolve(__dirname,'./src')
    }
  }
})

3.配置tsconfig.json

{
  "compilerOptions": {
    ...
    "baseUrl": "./",
    "paths": {
      "@/*":["src/*"]
    }
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
  "references": [{ "path": "./tsconfig.node.json" }]
}

### 解决方案 对于在 Vue 和 TypeScript 项目中遇到的 `Cannot find module &#39;@/view/login/Index.TS&#39; or its corresponding type declarations` 错误,可以通过以下方法来解决: #### 方法一:声明模块 为了使 TypeScript 认识 `.ts` 或者 `.tsx` 文件作为模块,可以在项目的根目录下的 `shims-tsx.d.ts` 或类似的全局类型声明文件中添加如下声明[^2]。 ```typescript declare module &#39;*.tsx&#39; { import { DefineComponent } from &#39;vue&#39; const component: DefineComponent<{}, {}, any> export default component } ``` 如果上述方式不适用,则尝试创建一个新的声明文件(如 `global.d.ts`),并在此文件内加入以上代码片段。确保该文件被包含到 tsconfig.json 的编译选项里。 #### 方法二:路径别名配置 确认 Webpack 配置中的 alias 设置是否正确指定了 &#39;@&#39; 到 src 目录。通常情况下,这会在 vite.config.js (如果是 Vite 构建工具的话) 或 webpack.config.js 中完成设置。例如,在使用 Vite 时可做如下调整: ```javascript export default defineConfig({ resolve: { alias: { &#39;@&#39;: path.resolve(__dirname, &#39;./src&#39;), }, } }) ``` 此操作使得 `&#39;@/view/login/Index.TS&#39;` 实际上指向的是 `./src/view/login/Index.TS` 这样的相对路径[^5]。 #### 方法三:安装必要的依赖包 有时缺少特定类型的定义也会引发此类问题。因此建议检查并安装可能缺失的相关类型库,比如[@types/node](https://www.npmjs.com/package/@types/node),以及前面提到过的 [@types/webpack-env]. 执行命令: ```bash npm install --save-dev @types/node @types/webpack-env ``` #### 方法四:使用 `@ts-ignore` 虽然这不是最佳实践,但在某些紧急情况下可以直接在有问题的那一行之前加上 `// @ts-ignore` 注释以跳过当前行的类型检查[^3]: ```typescript // @ts-ignore import IndexTS from &#39;@/view/login/Index.TS&#39;; ``` 这种方法仅适用于临时解决问题,并不是长久之计;应该尽快找到根本原因并修复它。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值