打字稿绝对模块路径未正确编译

时间:2016-12-23 22:51:47

标签: javascript node.js typescript

我对打字稿比较陌生,所以也许我在这里遗漏了一些东西,或者不完全理解这个概念。在tsconfig中,我在compilerOptions中定义了以下内容:



{
  baseUrl: ".",
  paths: {
    "*": ["server/*"]
  }
}




假设以下目录结构:



+ server
|  + routes
|  |  + util
|  |  - config.routes.ts
|  - route_file.ts
-tsconfig.json




如果我在config.routes.ts中导入由route_file.ts导出的模块:



import * as routes from 'routes/route_file.ts';




Typescript解决路径没有问题。但是,编译后的JS需要具有相同文字路径的模块:



const routes = require('routes/route_file')




这显然是一个问题,因为找不到模块,因为路径应该是../route_file。我的项目有很多子目录,我希望尽可能远离../../../。有没有办法让编译器检查导入文件的目录并更新相对于该文件的require路径?

1 个答案:

答案 0 :(得分:0)

这里的问题是tsconfig只告诉typescript编译器在哪里找到类型信息。解析路径是捆绑器的任务,如webpack。或者执行JavaScript的运行时 如果你想看一下webpack的工作配置,你可以查看我几周前设置的反应样本https://github.com/kaoDev/react-ts-sample