我使用Durandal JS構建多個應用程序。所有這些應用程序位於同一個文件根目錄下的同一臺服務器上,並共享一些通用代碼。例如,他們都使用相同的模型&查看登錄。與Durandal JS在不同項目中重複使用/共享視圖和模型
如何重新/分享在所有這些應用程序的登錄模式&視圖,而不只是複製&文件粘貼到的項目?
我已經嘗試過的東西有以下文件夾結構:
ProjectsDir/Project1/app/durandal/..
/models/Shell.js, Main.js, ...
/views/Shell.html, Main.html, ...
/main.js
/main-built.js
ProjectsDir/Project2/app/durandal/..
/models/Shell.js, Main.js, ...
/views/Shell.html, Main.html, ...
/main.js
/main-built.js
ProjectsDir/ProjectsBase/app/models/Login.js
/views/Login.html
這樣將有可能通過在正確的路線設置爲從其他項目中引用相同的登錄模式&鑑於我ProjectsBase各自的shell.js。這條路線可能是這個樣子:
router.map([
{
url: 'Login',
moduleId: '../../ProjectsBase/app/models/Login',
name:'Login',
visible: true
},
{
url: 'Main',
moduleId: 'models/Main',
name:'Main',
visible: true
}
]);
這個工程調試,但建設量產版與迪朗達爾優化過程中如預期遺憾的是不工作的。 其實建築不工作(它產生的主built.js就好了),但是當我引用我得到以下錯誤生產文件啓動網站:
Uncaught Error: undefined missing durandal/../../../MPBase/durandal-app/models/Login
我真的很感激如何任何想法我可以使建立的生產文件與我上面描述的設置一起工作。
當然,我也打開其他想法如何使模型&意見可重複使用/可共享多個項目之間。
感謝
你目前的構建過程是什麼?你用咕嚕聲嗎? –
我現在沒有真正的構建過程。我談論的項目基本上不會太大,只能用於私人用途,因此構建過程將手動將所有文件與Durandal優化器手動合併/縮小,然後將它們上傳到服務器上的「生產」位置。我已在[Durandals Google網上論壇](https://groups.google.com/forum/?fromgroups=#!topic/durandaljs/sYZO79Db_JM)上收到我的問題的答案,這似乎相當有前途。自從我成功嘗試了這些建議後,我會自己回答這個問題... – suamikim