高手速來(lái)圍觀幫忙解惑~關(guān)于ASP.NET MVC Bundling and RequireJS的取舍問(wèn)題,最近比較困惑,我希望有一種方式可以結(jié)合兩者的優(yōu)點(diǎn)。作為.NET程序員,難道你沒(méi)有過(guò)這方面的困惑嗎?

    因?yàn)槲腋杏X(jué)各自都有優(yōu)缺點(diǎn),RequireJS的缺點(diǎn)在于,在開(kāi)發(fā)的時(shí)候,你不能引入壓縮后的js或者css,否則無(wú)法調(diào)試和修改,而B(niǎo)undling的話(huà)debug模式默認(rèn)情況下是不壓縮,你一發(fā)布到生產(chǎn)成release就自動(dòng)壓縮,調(diào)試起來(lái)非常方便。RequireJS的優(yōu)點(diǎn)在于可以異步按需加載,還有就是模塊化js代碼,而B(niǎo)undling 則是簡(jiǎn)單粗暴的全部合并成一個(gè)文件進(jìn)行加載,你看不出模塊化引用也實(shí)現(xiàn)不了按需加載, 那么在開(kāi)發(fā)過(guò)程中作為.NET程序員是如何取舍的呢?能不能結(jié)合二者的優(yōu)點(diǎn)來(lái)使用呢?

    目標(biāo):在ASP.NET MVC項(xiàng)目中實(shí)現(xiàn)js和css的模塊化,并支持壓縮合并。

    如果你跟我說(shuō)你還不知道RequireJS是個(gè)神馬冬冬?請(qǐng)移步至:http://requirejs.org/docs/api.html

    項(xiàng)目目錄結(jié)構(gòu)沿用上一篇ASP.NET MVC 重寫(xiě)RazorViewEngine實(shí)現(xiàn)多主題切換

方式一 Bunding+RequireJS混用

先來(lái)看看一個(gè)老外的做法,他大體上是這樣做的:

Bundling部分

App_Start/BundleConfig.cs:

bundles.Add(new ScriptBundle("~/bundles/test").Include(                   "~/Scripts/jquery-{version}.js",                   "~/Scripts/q.js",