如何為多個環境管理 ASP.NET Core bundleconfig.json?
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}在路由定義中使用,所以現在不需要對路徑進行編碼更新
我認為這是我要做的最後一次重大更新。我將靜態基本路由字元串替換
outputFileName為bundleconfig.json. 因此,現在有盡可能多的調試路徑,因為將有縮小文件,並且不必擔心名稱衝突。此外,您可以在調試時看到哪些文件包含在哪個包中,我認為這很酷。