导致错误导入的Typescript路径



我使用的是Typescript(4.1.3),我开始在tsconfig.json中使用自定义路径。从那以后,当我导入任何.ts文件时,如果我不使用整个路径,就会得到错误:

错误:(138,33)TS2307:无法找到模块'pages/foo/bar'或其相应的类型声明。

为了解决这个问题,我必须添加前缀'src/',所以我得到'src/pages/foo/bar'。项目本身工作正常,即使有这个TS错误。

这是我的tsconfig。json文件

{
"compilerOptions": {
"allowJs": true,
"sourceMap": true,
"target": "es6",
"strict": true,
"declaration": false,
"noImplicitAny": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "esnext",
"moduleResolution": "node",
"strictNullChecks": false,
"baseUrl": ".",
"paths": {
"foo": [
"bar.js"
]
},
"types": [
"quasar",
"node",
"cypress"
],
"lib": [
"es2018",
"dom"
]
},
"exclude": [
"node_modules"
],
"extends": "@quasar/app/tsconfig-preset"

}

compilerOptions.baseUrl被前缀到import语句中指定的路径,以创建路径相对tsconfig.json文件的位置

在您的情况下,模块bar.js与tsconfig.json文件的路径是src/pages/foo/bar。所以你要么在compilerOptions.baseUrl中指定./src,要么在import语句中指定完整的路径。

这似乎是您的配置baseUrl:"."的问题,这意味着js模块解析从当前目录发生,这就是为什么您的导入投诉添加src目录。

确保将此配置指向src dir,然后所有导入解析都从该dir进行。示例:baseUrl:"./src"

详细信息:https://www.typescriptlang.org/tsconfig#baseUrl

添加"typescript-path-fix"到任务运行器管道中,或者在编译代码之前调用它

使用这个包来解决你的问题:https://www.npmjs.com/package/typescript-path-fix

相关内容

  • 没有找到相关文章

最新更新