2013-04-30 81 views
0

我使用Ember.js创建单个页面的应用程序,其中包含多个JavaScript文件,这些文件通过VS2012中的捆绑功能进行组合和缩小。Bundler不包含脚本文件

如果我打开minification(BundleTable.EnableOptimizations = true;),ember.js库(ember-1.0.0-rc.3.js)不包含在ember bundle中。澄清文件名不以“.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昆明植物研究所)。我试图将nuget包Microsoft.AspNet.Web.Optimization更新到最新版本,但是id没有解决我的问题。

回答

0

.NET的Bundler breaks Ember RC3如果你缩小它。它也打破了Ember-Data。我们必须包括所有灰烬相关的脚本没有现在虽然我们在不同的解决方案工作于_Layout.cshtml直接捆绑(我们很可能会包括不同变换只是为了灰烬):

<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模板(download | source),你应该没问题,因为它仍然使用RC2;但是如果您更新到RC3,那么您必须根据this sample修改软件包配置和布局文件。

我没有时间送PR的SPA模板,但我有此问题的更新,如果您使用的SPA模板(会做今晚FO笑)

另一件事:它带有一个HTML助手@Html.RenderEmber()以在调试模式下呈现View文件中的模板。此方法不根据Ember惯例呈现模板名称,所以现在我添加了另一种方法()。 PR /合并后,它们应该同步。

在Myslik的仓库中添加的样本可能是目前最新的样本,我建议您参考一下。

+0

好吧,自从我将“〜/ Scripts/ember-i18n.js”和“〜/ Scripts/localize/loc-slovak.js”移动到其他包以来,它就起作用了。但是这个解决方案是不可靠的。 – petriq 2013-04-30 21:13:38

+0

我知道这个解决方案并不理想。最终事情会对我们来说更好.NET人:) – MilkyWayJoe 2013-04-30 21:17:59