Typescript/ES6:使用绝对路径导入源文件
在我的一个文件中,我用以下方式导入另一个 commonjs 模块
import * as at from '../../../at-angular'
我更愿意做
import * as at from 'fv/at-angular'
其中 fv 是我的 src 目录。所以我的应用文件夹结构如下:
- src
- at-angular.ts
- core
- services
....
我能否以某种方式让 TypeScript 使 fv 指向 src?
答案#1
TypeScript 1.8(尚未发布)将具有路径映射功能:
路径映射
有时候模块并不直接位于 baseUrl 之下。在这种情况下,可以使用路径映射来控制位置的计算。路径映射使用以下 JSON 结构来指定:
{ "paths": { "pattern-1": "substitution" | ["list of substitutions"], "pattern-2": "substitution" | ["list of substitutions"], ... "pattern-N": "substitution" | ["list of substitutions"] } }模式和替换是可以包含零个或一个星号('*')的字符串。模式和替换的解释将在解析过程部分描述。
https://github.com/Microsoft/TypeScript/issues/5039
这可能就是你在寻找的。
答案#2
我创建了一个用于源代码的 gist,以使用绝对路径名或 tsconfig.json 中定义的任何其他路径。它在 Browserify+Watchify+Tsify 中运行良好,也适用于 Gulp-typescript。
https://gist.github.com/azarus/f369ee2ab0283ba0793b0ccf0e9ec590
它将 tsconfig.json 中定义的路径名和 baseUrl 转换为它们的相对路径名。享受吧!
