我正在構建沒有JS模塊的舊時尚應用程序(是的,全球範圍)。我使用的編譯器選項outFile
和declaration
捆綁所有.ts
來源單一項目到單個文件和單d.ts
文件,這是我從我的其他項目中引用。bundle d.ts without references directive
我開始利用@types
,我搬到node_modules
到我的項目的根,所以@types
是visible,並自動加載。我還將我的所有項目的&副本d.ts
複製到node_modules\@types\
,這進一步幫助我在我的項目之間交叉加載聲明。甜。
然後我包括在我的項目之一moment.js
和不愉快的事情發生了。這圖書館在node_modules\moment
目錄自己的報關文件,並tsc
這個附加的d.ts
指令\\\ <references...
用顯式路徑,其中,很明顯,複製到其他目的地後,不匹配。
如果將會有一些的選項直接附加外部聲明,通過複製,而不是通過引用,進入捆綁包,這將是偉大的!有沒有這樣的事情?
「我搬到node_modules到我的項目的根」你是什麼意思? – gilamran
@gilamran你可以將'library'換成'project',我在Visual Studio(不是Code)中工作,其中項目是常見的概念。它意味着代碼文件夾,您爲某種目的創建了代碼,並將其作爲單個項目工作。所以「我的項目的根」意味着我的項目文件夾的根。 – Vaclav
這與所謂的mono-repo類似。一個文件夾包含許多項目。您不應該將node_modules放在根文件夾上,並將其保留在每個項目上。由於每個項目都有自己的依賴關係。 – gilamran