asp.net-core-mvc – 如何在多种环境下管理ASP.NET Core bundleconfig.json?

在开发与生产环境中使用ASP.NET Core bundleconfig.json的最佳实践是什么?先前的bundler( BundleCollection)会关注DEBUG编译器指令,而不是在调试时缩小脚本列表.

似乎新范例是< environment>测试ASPNETCORE_ENVIRONMENT值的HTML模板中的标记.虽然我没有看到将该环境变量合并到bundleconfig.json工作流程中的方法.

我看到的一种方法是在bundleconfig.json,缩小和非缩小版本中为每个捆绑输出维护2个列表,以便可以调试JavaScript.或者,我可以在开发< environment>中直接链接到非捆绑JavaScript.标记,然后在production / staging< environment>中引用捆绑和缩小的版本.标签.

无论哪种方式,都需要维护2个JavaScript文件列表(所有这些都适用于CSS文件).这似乎是向后退一步,在此之前你只需要维护一个文件列表,而BundleCollection只会在适当的时候缩小.

在这里遗漏了什么,或者我是否需要更进一步调查Gulp以便能够处理不同的环境?

解决方法

我想我找到了答案.我正要创建一个HTML帮助程序来读取开发环境中的bundleconfig.json,但看起来我并不是第一个认为这是个好主意的人.请注意,.NET Core实现链接页面底部

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

编辑

对于.NET Core实现,对bundleconfig.json的引用期望它位于/ Configs文件夹中,这可能是您项目中的情况,也可能不是.对我来说,我只是在项目的根目录中.

编辑

因此,如果源文件位于wwwroot文件夹之外,则此方法无效.拥有wwwroot文件夹之外的文件是完全合理的,所以我正在研究让html助手指向一个将以调试模式传输文件的路径

可能解决方

这是我解决方案的演变:

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

更新

修改了我的解决方案,在路由定义中使用{* filePath},因此现在不需要对路径进行编码

更新

我认为这是我要做的最后一次重大更新.我用bundleconfig.json中的outputFileName值替换了静态基本路由字符串.所以现在有很多调试路由,因为有缩小的文件,不用担心名称冲突.另外,您可以在调试时看到哪些文件包含在哪个包中,我觉得这很酷.

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...