如何在没有绝对路径的情况下引用打字稿文件?

时间:2014-11-08 22:32:04

标签: visual-studio typescript

由于打字稿doesn't seem to support absolute path references,我无法看到如何保持我的参考文献整洁。我的文件夹结构中的许多不同位置都有ts文件,我必须非常小心我的意思是..\Scripts\typings\jquery\jquery.d.ts还是..\..\Scripts\typings\jquery\jquery.d.ts看起来真的很笨拙。

是否有任何方式来指定根引用文件夹,这样我就不必指定相对于当前文件路径的所有路径,这对于每个文件夹都是不同的?

2 个答案:

答案 0 :(得分:17)

目前没有办法指定要在引用中使用的 root 文件夹。

绝对文件路径确实有效,但通常与多个开发人员对路径进行维护使得这可能对许多TypeScript开发项目来说都是不可取的。

例如,CodePlex上有discussions表示类似请求(但没有解决方案)。由于TypeScript文件是独立的,一些人一直关注引入一个"项目"喜欢编译器的方案。

一些开发人员会将最常用的引用放在一个文件中(例如,称为_references.d.ts),并在那里列出对定义文件的引用。然后,该文件将从其他TypeScript文件中引用。它简化了但并没有完全消除这个问题(因为你仍然需要使用具有N级目录弹出的相对文件引用):

/// <references path="../../../_references.d.ts." />

根据您拥有的文件数量和定义的大小,您可能会发现,由于文件是单独编译的,因此编译过程将花费更长时间(因为它从_references.d.ts文件中提取了可能未使用的定义)。 (例如,如果你有&#34;编译保存&#34;在IDE中激活)。

答案 1 :(得分:1)

为了使您的相对路径引用保持整洁,请在其中指定路径别名 你的tsconfig.json

首先安装 tspath 用于解析ts路径的npm工具 注意:tspath需要最近的节点专长!

npm install -g tspath

接下来,将路径别名添加到tsconfig.json

"baseUrl": "./",
  "paths": {
    "@Scripts/*": ["./Scripts/typings/jquery/*"],
    "@Plugins/*": ["./MyPlugins/V2/*"]
  }

现在在引用脚本时使用别名

@Scripts/jquery
@Plugins/myPlugin

运行TypeScript编译器后,从项目目录中运行:

tspath

tspath -f

跳过提示!

阅读详情:https://www.npmjs.com/package/tspath

希望这就是你要求的!