2014-11-08 49 views
18

既然打字稿doesn't seem to support absolute path references,我看不到如何保持我的参考整齐。我在我的文件夹结构中的许多不同位置都有ts文件,并且必须非常小心我的意思是..\Scripts\typings\jquery\jquery.d.ts还是..\..\Scripts\typings\jquery\jquery.d.ts看起来真的很糟糕。如何在没有绝对路径的情况下引用打字稿文件?

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

+0

像'''应该可以工作。你链接的问题显示为固定的(并且我确认它可行)。 – WiredPrairie 2014-11-08 22:50:18

+1

嗯,这比马虎引用好,但硬编码的目录结构意味着我的文件系统中的位置嵌入在文件中,这将在其他机器上打破。当然Typescript应该支持根相对路径,即'/ Scripts/typings/...' – 2014-11-08 23:25:42

+0

不幸的是,它不支持这样的事情,因为每个文件都可以独立编译成JavaScript文件,所以没有一个好的为根路径定义的位置。该团队非常擅长聆听github上的反馈。 – WiredPrairie 2014-11-09 04:03:27

回答

17

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

绝对文件路径可以正常工作,但通常对于多个开发人员来说,维护这些路径使得这对于许多TypeScript开发项目来说可能是不起步的。

例如CodePlex上已有discussions表示类似的请求(但没有解析)。由于TypeScript文件是独立的,因此一些人一直在担心向编译器引入一个类似于“方案”的“项目”。

一些开发人员会将最常用的引用放在单个文件中(称为例如_references.d.ts),并列出对定义文件的引用。然后,该文件将从其他TypeScript文件引用。它简化了,但并没有完全解决问题(如你仍然需要使用与目录的施氮水平可能爆裂相对文件引用):

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

取决于你有多少个文件和定义的大小尽管如此,您可能会发现,由于文件是单独编译的,因此编译过程将花费更长时间(因为它会从_references.d.ts文件中抽取可能未使用的定义)。 (例如,如果您在IDE中激活了“在保存时编译”)。

+0

我不确定一般的Typescript应该如何工作,但在我看来,Visual Studio可以覆盖工具来识别绝对路径,也许使用常见的〜/ ASP.NET约定。任何理由不这样做? – 2014-11-10 13:47:47

+0

TypeScript编译器单独发行......对TSC编译器进行正确的调整,是的,可以使'〜/ defs/etc.d.ts'工作。 – WiredPrairie 2014-11-10 21:24:48

+0

在Visual Studio中,如果至少通过nuget下载.d.ts文件,则不需要包含引用。这很好,但它将您锁定为仅使用一个IDE。具有这种令人费解的参考系统的 – 2015-07-03 11:31:24

0

为了让您的相对路径引用整洁,在 指定路径别名(ES)的tsconfig.json

首先安装tspath的NPM工具解决TS路径 注:tspath需要非常新近节点!

npm install -g tspath 

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

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

现在引用您的脚本

@Scripts/jquery 
@Plugins/myPlugin 

时使用的别名已运行打字稿编译器后,可从项目目录,运行:

tspath 

tspath -f 

跳过提示!

在了解更多:https://www.npmjs.com/package/tspath

希望这是你问什么!

相关问题