由于你的包装和缩小Durandal应用程序似乎不是我的尺寸问题的明确答案,我认为我做了 * 粗糙 * 通过逐个缩小每个Durandal JavaScript文件进行比较。然后我们可以总结各个文件,以大致了解Durandal本身的大小。
以下是关于Durandal在尺寸方面可以添加到您的应用中的一些指导原则:
Durandal 1.2.0(~71Kb原料/ ~41Kb缩小)
- \迪朗达尔
- app.js(缩小2,190字节/ 1,334字节)
- composition.js(10,536字节/ 6,177字节缩小)
- events.js(4,142字节/ 2,219字节缩小)
- http.js(988字节/ 507字节缩小)
- messageBox.html(477字节/ 477字节缩小)
- messageBox.js(451字节/ 349字节缩小)
- modalDialog.js(6,293字节/ 3,571字节缩小)
- system.js(5,480字节/ 2,711字节缩小)
- viewEngine.js(2,268字节/ 1,387字节缩小)
- viewLocator.js(3,470字节/ 2,096字节缩小)
- viewModel.js(14,837字节/ 7,648字节缩小)
- viewModelBinder.js(2,077字节/ 1,257字节缩小)
- widget.js(4,483字节/ 2,753字节缩小)
- \迪朗达尔\插件
- router.js(11,440字节/ 7,019字节缩小)
- \迪朗达尔\部件\膨胀
- controller.js(685字节/ 501字节缩小)
- view.html(缩小562字节/ 562字节)
- \迪朗达尔\过渡
- entrance.js(2,488字节/ 1,221字节缩小)
Durandal 2.2.0pre(~171Kb原始/ ~66Kb缩小)
- \迪朗达尔
- app.js(4,539字节/ 1,776字节缩小)
- composition.js(22,836字节/ 11,361字节缩小)
- events.js(7,461字节/ 2,226字节缩小)
- system.js(14,560字节/ 3,987字节缩小)
- viewEngine.js(缩小6,284字节/ 1,943字节)
- viewLocator.js(缩小6,314字节/ 2,110字节)
- activator.js(21,609字节/ 8,378字节缩小)
- viewModelBinder.js(5,637字节/ 2,026字节缩小)
- \迪朗达尔\插件
- dialog.js(15,572字节/ 5,773字节缩小)
- history.js(11,716字节/ 4,122字节缩小)
- http.js(2,597字节/ 509字节缩小)
- observable.js(10,257字节/ 5,067字节缩小)
- router.js(30,871字节/ 12,907字节缩小)
- serializer.js(5,171字节/ 1,355字节缩小)
- widget.js(7,430字节/ 2,928字节缩小)
- \迪朗达尔\过渡
- entrance.js(2,174字节/ 1,044字节缩小)
注意:
- 两个版本的Durandal都依赖于以下附加库:
- RequireJS(约15 Kb缩小)
- RequireJS Text Plug-In(约6.5 Kb缩小)
- KnockoutJS(约15 Kb缩小)
- JQuery(约91 Kb缩小)
- 这些只是基于我使用的缩小器的粗略估计。根据用于缩小代码的实用程序,缩小的大小可能会发生变化。
- 我没有包含css或图片资产估算,因为它并不是非常重要。
- 由于Durandal使用RequireJS按需加载模块,因此您可能不必承担框架的全部下载成本。
- Durandal 2.0.0pre的数量可能会有所变化,因为截至本文发布之时尚未发布。
醇>
希望这有助于人们。
干杯,
理查德
Durandal中的优化步骤不能编译成单个Durandal.js Durandal.min.js文件,这就是为什么你找不到这个问题的答案的原因。
在优化过程中,您的应用程序模块与Durandal的模块一起烘焙,默认情况下用almond.js将AMD模块的小型加载器包装成一个名为main-built.js的文件。
在较大的应用中,您可能会考虑延迟加载应用的某些部分,在这种情况下,需要将almond.js替换为require.js。您甚至可以选择不使用almond|require
完全包装您的应用,而是先加载这些应用。
除了requirejs | almond的大小之外,Durandal还非常依赖于jQuery和knockout,甚至还有一些用于模态对话框的最小CSS,所以这些也需要考虑在内。
因此,如果您正在使用requirejs,jQuery和knockout,那么Durandal添加的额外大小可能是它添加的所有SPA功能的明智之选。
如果你来自backbonejs
世界的人数超过{{1}},那么http://marionettejs.com/当然有自己的一套家属
Marionette依赖于Underscore,Backbone,jQuery和其他各种库作为其基础。