2013-04-30 85 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