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页面会报错,如下图所示。


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




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

浙公网安备 33010602011771号