2016-12-23 65 views
1

我是比较新的打字稿所以也许我在这里失去了一些东西或者不完全理解这个概念。在tsconfig我在compilerOptions定义如下:不编译打字稿绝对模块路径正确

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

假设下面的目录结构:

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

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

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

打字稿解决没有问题的路径。编译后的JS,但是,必须使用相同的文字路径模块:

const routes = require('routes/route_file')

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

+0

你试过从像“/服务器/ route_file”绝对路径导入示例? –

+0

嗨@Zofskeez,我有同样的问题,并找到了答案,也许这可以有一些帮助:http://stackoverflow.com/questions/43657948/create-module-containing-all-exports-in-typescript/43886685 #43886685 – Jacks

回答

0

这里的问题是,tsconfig只告诉打字稿编译器在哪里查找类型信息。路径的解析是像webpack这样的捆绑软件的一项任务。或执行JavaScript的运行时。
如果你想有上的WebPack有效的配置来看看你可以检查出有反应过来我在几个星期前成立https://github.com/kaoDev/react-ts-sample