vue3+vite+ts 识别不到路径映射配置问题

在用vue3+vite+ts构建的项目中,项目中会包含3个配置文件tsconfig.json,tsconfig.app.json,tsconfig.node.json三个文件,三个配置文件默认内容如下

tsconfig.json

{
  "files": [],
  "references": [
    { "path": "./tsconfig.app.json" },
    { "path": "./tsconfig.node.json" }
  ]
}

tsconfig.app.json

{
  "compilerOptions": {
    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
    "target": "ES2020",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "skipLibCheck": true,

    /* Bundler mode */
    "moduleResolution": "Bundler",
    "allowImportingTsExtensions": true,
    "isolatedModules": true,
    "moduleDetection": "force",
    "noEmit": true,
    "jsx": "preserve",

    /* Linting */
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedSideEffectImports": true
  },
  "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
}

tsconfig.node.json

{
  "compilerOptions": {
    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
    "target": "ES2022",
    "lib": ["ES2023"],
    "module": "ESNext",
    "skipLibCheck": true,

    /* Bundler mode */
    "moduleResolution": "Bundler",
    "allowImportingTsExtensions": true,
    "isolatedModules": true,
    "moduleDetection": "force",
    "noEmit": true,

    /* Linting */
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedSideEffectImports": true,
  },
  "include": ["vite.config.ts"]
}

现在要配置路径映射,已经在vite.config.ts里配置了

resolve: {
      alias: {
        "@": path.resolve(__dirname, "src"),
      },
    }

接下来只需要在tsconfig.json里配置下面映射关系就好了

{
  "compilerOptions": {
    "paths": {
      "@/*":["src/*"]
    },
    "baseUrl": "."
  }
}

但是发现一个问题,即main.ts文件中识别的是tsconfig.app.json配置的路径映射,而不是tsconfig.json配置的路径映射,而vue页面(src/views/login/index.vue)识别的是tsconfig.json配置的路径映射,而不是tsconfig.app.json配置的路径映射。示例如下:

如果只在tsconfig.json配置路径映射,则main.ts会报错,如下图所示。

如果只在tsconfig.app.json配置路径映射,则vue页面会报错,如下图所示。

目前想到的办法是两个配置文件同时配置路径映射,这样就不会报错。

暂时想不出更好的解决办法,正常来讲只需要在其中一个配置文件配置好就可以,但是没效果,网上找不到好的解决办法,若有前端大佬懂如何解决的,烦请评论区留言。

posted @ 2025-05-06 10:30  相遇就是有缘  阅读(70)  评论(0)    收藏  举报