2012-10-20 26 views
1

我知道這是常見的問題,但我發現每個JavaScript和CSS打包器/縮小器是爲節點和包含很多必要的文件/模塊。當然,我們正在開發AngularJs應用程序,我們將所有模塊分成不同的文件,每個控制器也有它自己的文件(按照這種方法https://github.com/scotch/sapling)。 另外我們的服務器部分是.NET MVC,所以我們不熟悉節點或Java工具。AngularJS JavaScript和CSS包裝器

這就是我需要

  1. 包從文件夾中的所有.js文件,包括所有子文件夾(無限深)
  2. 決定我是否要運行縮小或者只是文件拼接
  3. 選項只運行簡單的命令收拾一切再次

所以basicly我需要的只是簡單的封隔器和壓縮命令行工具 。我做了一些與Brunch包裝,但我不喜歡它如何用一些代碼包裝我的模塊。

舉例來說這裏是樹苗

https://github.com/scotch/sapling

代碼,這裏是如何看起來包裝(包裝成模塊)

http://sapling.scotchmedia.com/js/app.js

任何簡單的,能適合這些需求?

+0

我很困惑。您是否正在尋找在服務器上運行的AngularJS解決方案(有沒有這樣的野獸?),還是.NET MVC資產緩存和控制器,可以在請求中動態地縮小和壓縮?這更像是一種構建的情況,儘管你可以用模塊化的方式懶惰地加載內容,例如[AMD(異步模塊定義)格式](http://addyosmani.com/writing-modular-js/)可能是你最好的在這裏爲單頁應用服務。另請參閱Require.js文檔中的[爲什麼AMD?](http://requirejs.org/docs/whyamd.html)。 –

+0

嗯,我用require.js使用了AMD,但我並不是那麼有趣。我會編輯我的問題更清楚。 –

回答

3

好的,經過一番研究,我發現.NET MVC捆綁包可以用於此目的。

即使debug = false,我發現如何使用非縮小版本(用於調試)。 積分去chrisortman

這裏是我的代碼

public static void RegisterBundles(BundleCollection bundles) 
    { 
     BundleTable.EnableOptimizations = true; 

     bundles.Add(new Bundle("~/bundles/vendor", new NonMinifyingJavascript()) 
      .IncludeDirectory("~/Areas/Qusion/App/libs/", "*.js", true)); 

     bundles.Add(new Bundle("~/bundles/app/finance", new NonMinifyingJavascript()) 
      .IncludeDirectory("~/Areas/Qusion/App/finance/", "*.js", true)); 
    } 

NonMinifyingJavascript是從上面chrisortman鏈接。

+0

你不需要使用'NonMinifyingJavascript()'...在.NET MVC捆綁包中,如果你的Web.config文件中有'Debug =「true」',它們不應該捆綁或縮小。我知道這一點,因爲這是我使用的。 ;) –

+0

謝謝,我知道,但以這種方式,我有2-3個非縮小文件,我比100個文件更喜歡