微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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值替换了静态基本路由字符串.所以现在有很多调试路由,因为有缩小的文件,不用担心名称冲突.另外,您可以在调试时看到哪些文件包含在哪个包中,我觉得这很酷.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐