原文地址:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BundlerMinifier
特徵
- 將CSS,JavaScript或HTML檔案捆綁到單個輸出檔案中
- 儲存原始檔會自動觸發重新捆綁
- 支援globbing模式
- MSBuild支援支援CI方案
- 縮小單個或捆綁的CSS,JavaScript和HTML檔案
- 每種語言的縮小選項都是可自定義的
- 開啟生成的檔案時顯示水印
- Task Runner Explorer整合
- 命令列支援
- 更新解決方案中所有捆綁包的快捷方式
- 抑制輸出檔案生成
- 轉換為Gulp
關於編碼的說明
沒有BOM(位元組順序標記)的所有檔案都被視為UTF-8。如果在輸出包檔案中看到奇怪的字元,則可能需要考慮將輸入檔案儲存為UTF-8或允許您指定BOM的編碼。
捆綁
在解決方案資源管理器中選擇2個或更多相同型別的檔案以建立捆綁包。
對原始檔進行的任何編輯都將立即生成更新的捆綁檔案輸出。
捆綁包配置儲存在一個名為的檔案中,該檔案bundleconfig.json
將新增到專案的根目錄中。
縮小
在解決方案資源管理器中右鍵單擊任何JS,CSS或HTML檔案。這將建立一個[filename] .min。[ext]並將其巢狀在原始檔案下。
修改原始檔案後,會立即生成新的min檔案。
捆綁構建/ CI支援
在ASP.NET MVC和WebForms專案中,您可以在構建步驟中啟用捆綁和縮小。只需右鍵單擊該bundleconfig.json
檔案即可啟用它。
單擊該選單項將提示您有關單擊“確定”按鈕時將發生的情況的資訊。
NuGet包將安裝到該packages
資料夾中,而不會向專案本身新增任何檔案。該NuGet包中包含一個MSBuild任務,該任務將bundleconfig.json
在專案根目錄中的檔案上執行完全相同的編譯器。
對於ASP.NET Core專案,請參閱wiki
更新所有捆綁包
您可以bundleconfig.json
使用鍵盤快捷鍵Shift+Alt+i
或使用頂級“生成”選單上的按鈕在解決方案中的所有檔案上執行bundler 。
來源地圖
目前僅支援JavaScript縮小源對映。
一個.map
檔案的下一次成功的.min.js
檔案自動,但如果你手動刪除.map
檔案,新的人會不會在隨後的minifications建立。
要啟用源對映,請將此屬性新增到bundleconfig.json
檔案中:
“ sourceMap ”:是的
任務執行資源管理器
快速瀏覽您指定的檔案或直接在Task Runner Explorer中執行捆綁包。
您甚至可以設定繫結,以便在某些Visual Studio事件(例如BeforeBuild和Project Open)期間自動發生捆綁/縮小。
抑制輸出檔案生成
有些情況下,您不希望擴充套件程式監聽檔案更改並生成捆綁和縮小的輸出。如果您想使用Gulp bundleconfig.json
或使用伺服器端程式碼,那可能就是這樣。在這些情況下,讓bundleconfig.json
檔案包含所有Visual Studio工具仍然有用,但讓其他工具處理捆綁和縮小過程。
要取消輸出,請刪除右鍵選單中的核取方塊bundleconfig.json
。
轉換為Gulp
此功能使您可以根據已配置的內容輕鬆開始使用Gulp bundleconfig.json
。它將建立gulpfile.js
, package.js
如果它們尚不存在,則使用npm安裝所需的節點模組。
該gulpfile.js
會消耗bundleconfig.json
來獲取輸入和輸出檔案的路徑,但會使用普通一飲而盡外掛來完成所有的捆綁和縮小。您可以修改它以使用其他外掛而不會失去其閱讀能力bundleconfig.json
。
閱讀更多相關資訊,並在維基上檢視程式碼示例。
bundleconfig.json
擴充套件bundleconfig.json
在專案的根目錄新增一個檔案,用於配置所有捆綁。
以下是該檔案的示例:
[ { "outputFileName": "output/bundle.css", "inputFiles": [ "css/lib/**/*.css", // globbing patterns are supported "css/input/site.css" ], "minify": { "enabled": true, "commentMode": "all" } }, { "outputFileName": "output/all.js", "inputFiles": [ "js/*.js", "!js/ignore.js" // start with a ! to exclude files ] }, { "outputFileName": "output/app.js", "inputFiles": [ "input/main.js", "input/core/*.js" // all .js files in input/core/ ] } ]
有助於
如果您想為此專案做出貢獻,請檢視貢獻指南。
要自己克隆和構建此專案,請確保為Visual Studio 安裝Extensibility Tools 2015擴充套件,該擴充套件啟用了此專案使用的某些功能。