1

我似乎无法在任何地方找到答案......

Durandal Core 框架(1.2.0 和 2.0.0pre 版本)在缩小之前和之后的大小是多少?

这将是很好的信息,可以放回 Durandal 官方网站。

4

2 回答 2

4

由于您打包并缩小了 Durandal 应用程序,我的大小问题似乎没有明确的答案,我想我会通过单独缩小每个 Durandal JavaScript 文件来进行*粗略的比较。然后我们可以对各个文件进行汇总,以大致了解 Durandal 本身到底有多大。

以下是有关 Durandal 可以在大小方面添加到您的应用程序的一些指南:

Durandal 1.2.0 (~71Kb raw / ~41Kb minified)

  • \杜兰达尔
    • 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 字节缩小)
  • \durandal\插件
    • router.js(11,440 字节 / 7,019 字节缩小)
  • \durandal\widgets\expander
    • controller.js(685 字节/501 字节缩小)
    • view.html(562 字节/562 字节缩小)
  • \durandal\过渡
    • entry.js(2,488 字节 / 1,221 字节缩小)

Durandal 2.2.0pre (~171Kb raw / ~66Kb minified)

  • \杜兰达尔
    • 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 字节缩小)
  • \durandal\插件
    • 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 字节缩小)
  • \durandal\过渡
    • entry.js(2,174 字节 / 1,044 字节缩小)

笔记:

  1. Durandal 的两个版本都依赖于以下附加库:
    • RequireJS(约 15 Kb 缩小)
    • RequireJS 文本插件(约 6.5 Kb 缩小)
    • KnockoutJS(约 15 Kb 缩小)
    • JQuery(约 91 Kb 缩小)
  2. 这些只是基于我使用的缩小器的粗略估计。缩小后的大小可能会根据您用于缩小代码的实用程序而改变。
  3. 我没有包括 css 或图像资产估计,因为它不是非常重要。
  4. 由于 Durandal 使用 RequireJS 按需加载模块,因此您可能不必承担框架的全部下载成本。
  5. Durandal 2.0.0pre 的数字可能会发生变化,因为截至本文发布时尚未发布。

希望这对人们有所帮助。

干杯,理查德

于 2013-07-30T19:22:08.283 回答
0

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 和淘汰赛,那么 Durandal 添加的额外大小可能是它添加的所有 SPA 功能的明智之举。

如果您来自backbonejs世界各地而不是您可以查看http://marionettejs.com/,它当然有自己的一组依赖项

Marionette 依赖 Underscore、Backbone、jQuery 和其他各种库作为其基础。

于 2013-07-30T08:12:08.727 回答