Asp.net-Core-Mvc

如何為多個環境管理 ASP.NET Core bundleconfig.json?

  • June 21, 2021

bundleconfig.json在開發環境和生產環境中使用 ASP.NET Core 的最佳實踐是什麼?之前的捆綁程序 ( BundleCollection ) 會注意 DEBUG 編譯器指令,並且在您調試時不會縮小腳本列表。

似乎新範例是<environment>在 HTML 模板中包含用於測試ASPNETCORE_ENVIRONMENT值的標記。儘管我看不到將環境變數合併到bundleconfig.json工作流程中的方法。

我看到的一種方法是為每個包輸出維護 2 個列表bundleconfig.json,縮小和非縮小版本,以便可以調試 JavaScript。或者,我可以在開發標籤中放置指向未捆綁 JavaScript 的直接連結,<environment>然後在生產/暫存<environment>標籤中引用捆綁和縮小的版本。

無論哪種方式,都需要維護 2 個 JavaScript 文件列表(所有這些都適用於 CSS 文件)。這對我來說似乎是倒退了一步,在此之前您只需要維護一個源文件列表,而 BundleCollection 只會在適當的時候縮小。

我在這裡遺漏了什麼還是我需要更進一步調查 Gulp 以便能夠處理不同的環境?

我想我找到了答案。我正要創建一個 HTML 助手來閱讀bundleconfig.json開發環境的內容,但似乎我不是第一個認為這是個好主意的人。請注意,.NET Core 實現連結到頁面底部

https://github.com/madskristensen/BundlerMinifier/wiki/Unbundling-scripts-for-debugging

編輯

對於 .NET Core 實現,對 .NET Core 的引用bundleconfig.json期望它位於 /Configs 文件夾中,在您的項目中可能是這種情況,也可能不是。對我來說,我只是將它放在項目的根目錄中。

編輯

因此,如果源文件位於 wwwroot 文件夾之外,這將不起作用。將文件放在 wwwroot 文件夾之外是完全合理的,因此我正在研究讓 html 幫助程序指向將以調試模式流式傳輸文件的路徑

可能的解決方案

這是我對解決方案的演變:

https://gist.github.com/rupe120/512a9eb837383963f80fd9ef4984eb15

更新

我修改了我的解決方案以{*filePath}在路由定義中使用,所以現在不需要對路徑進行編碼

更新

我認為這是我要做的最後一次重大更新。我將靜態基本路由字元串替換outputFileNamebundleconfig.json. 因此,現在有盡可能多的調試路徑,因為將有縮小文件,並且不必擔心名稱衝突。此外,您可以在調試時看到哪些文件包含在哪個包中,我認為這很酷。

引用自:https://stackoverflow.com/questions/48097137