2014-11-08 84 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

希望這是你問什麼!

相關問題