Bundler和Minifier Visual Studio擴充套件

tinys發表於2018-09-29

原文地址: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擴充套件,擴充套件啟用了此專案使用的某些功能。

相關文章