這真的不是一個Aurelia問題,這是一個與作爲ES2015的一部分(因此是TypeScript的一部分)的import
語句,您選擇的模塊加載程序及其配置方式有關的問題,也是您自己的選擇構建您的代碼庫。
您的模塊加載器會讀取您在import
語句中使用的模塊名稱,例如'aurelia-framework'
或'../resources/custom-elements/date-picker'
。
目前,沒有瀏覽器直接支持這些import
語句,因此我們利用各種模塊加載器來處理此任務。一些例子是RequireJS,SystemJS或者你可以在Webpack世界中使用的各種加載器。這些提供了一些提供友好模塊名稱的能力。通常,這些自定義名稱僅針對通過依賴關係管理器(例如NPM或JSPM)安裝的應用程序的依賴性進行配置。這些友好名稱以某種方式配置。
在SystemJS中,有一個config.js
文件(或0.17
beta中的jspm.configjs
)。這個文件可以被修改以提供你自己友好的模塊名稱。儘管這可能是有風險的,因爲JSPM是建立在它擁有該文件的假設之上的,因此它可能會覆蓋您在其中所做的任何更改。
在使用RequireJS的Aurelia CLI中,可以在aurelia.json
文件中對其進行設置。這個文件被CLI覆蓋的機會比JSPM更少,但它可能會發生。
所有這些被說,我不打算在這個答案中提供這些例子,因爲這個問題的更好的答案是相當內省:如果你不喜歡在導入時不斷輸出長路徑模塊,那麼您需要重新考慮您的深度嵌套項目組織。通過展開項目的源代碼,您可能可以實現相同的目標,而無需冒險創建自定義配置。
這是一個很好的答案,與我寫的很好地配對。這樣做的一個缺點是,所有的模型都會在第一次導入'models'模塊時加載。在一個足夠大的應用程序中,這可能會導致問題。如果您想將您的應用程序拆分爲多個功能單獨的功能塊,這也會導致問題。 –
是的!它可以使事情變得更容易,但應該小心使用。 –
感謝您的解決方案,@FabioLuz!這正是我所尋找的,我會小心這個缺點;) –