0

我正在使用带有多个 javascript 文件的 Ember.js 创建单页应用程序,这些文件使用 VS2012 中的捆绑功能进行组合和缩小。

如果我打开缩小 (BundleTable.EnableOptimizations = true;),ember.js 库 (ember-1.0.0-rc.3.js) 不会包含在 ember 包中。为了澄清文件名不以“.min.js”或“.debug.js”结尾。我的捆绑定义如下所示:

bundles.Add(new ScriptBundle("~/bundles/ember").Include(
            "~/Scripts/handlebars-1.0.rc.3.js",
            "~/Scripts/ember-1.0.0-rc.3.js",
            "~/Scripts/ember-i18n.js",
            "~/Scripts/localize/loc-slovak.js"));

它在页面上使用:

@Scripts.Render("~/bundles/ember")

我怀疑文件太大(超过 28000 行,774 kiB)。我尝试将 nuget 包 Microsoft.AspNet.Web.Optimization 更新到最新版本,但 id 并没有解决我的问题。

4

1 回答 1

0

如果你缩小它,.NET 的 Bundler会破坏 Ember RC3 。它还破坏了 Ember-Data。我们现在必须包含所有与 Ember 相关的脚本,而无需直接捆绑在其中_Layout.cshtml,而我们正在处理不同的解决方案(我们可能会为 Ember 包含不同的转换):

<script type="text/javascript" 
        src="@Url.Content("~/scripts/ember-1.0.0-rc.3.min.js")"></script>

<script type="text/javascript" 
        src="@Url.Content("~/scripts/ember-data.min.js")"></script>

如果您使用的是 SPA 模板(下载|源代码),您应该没问题,因为它仍在使用 RC2;但是如果你更新到 RC3,那么你将不得不根据这个示例修改捆绑配置和布局文件。

我还没有时间将 PR 发送到 SPA 模板,但是我有这个问题的更新(今晚会做)

如果您使用的是 SPA 模板,另一件事是:它带有一个 HTML 帮助@Html.RenderEmber()程序,可以在调试模式下呈现视图文件中的模板。此方法不会根据 Ember 约定呈现模板名称,因此我现在添加了另一个方法 ( @Html.RenderEmberTemplates())。在 PR/merge 之后它们应该是同步的。

Myslik 的 repo 中添加的示例可能是目前最新的,我建议您查看参考。

于 2013-04-30T14:40:10.030 回答