温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to manage ASP.NET Core bundleconfig.json for multiple environments?
asp.net-core-2.0 asp.net-core-mvc bundling-and-minification

其他 - 如何在多个环境中管理ASP.NET Core bundleconfig.json?

发布于 2020-04-22 16:42:57

bundleconfig.json开发环境和生产环境中使用ASP.NET Core的最佳实践是什么?先前的捆绑程序(BundleCollection)将注意DEBUG编译器指令,并且在调试时不会缩小脚本列表。

似乎新的范例是<environment>在HTML模板中具有测试ASPNETCORE_ENVIRONMENT值的标签尽管我看不到将环境变量合并到bundleconfig.json工作流中的方法。

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

无论哪种方式,都需要维护2个JavaScript文件列表(所有这些都适用于CSS文件)。这对我来说似乎是倒退了一步,在此之前,您只需要维护一个源文件列表,并且BundleCollection仅在适当时缩小。

我是否在这里缺少任何东西,还是需要进一步调查Gulp以能够处理不同的环境?

查看更多

提问者
Josh Russo
被浏览
13
Josh Russo 2018-01-06 01:49

我想我找到了答案。我本打算创建一个HTML助手来阅读bundleconfig.json开发环境的,但看来我不是第一个认为这是个好主意的人。请注意,.NET Core实现链接到页面底部。

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

编辑

对于.NET Core实施,对的引用bundleconfig.json期望它位于/ Configs文件夹中,在您的项目中可能会或可能不会。对我来说,我只是将它放在项目的根目录下。

编辑

因此,如果源文件位于wwwroot文件夹之外,则此方法将无效。将文件放在wwwroot文件夹之外是完全合理的,因此我正在研究让html helper指向将在调试模式下流式传输文件的路径。

可能的解决方案

这是我对解决方案的改进:

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

更新资料

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

更新资料

我认为这是我要做的最后一个重大更新。我用的outputFileName替换了静态基本路由字符串bundleconfig.json因此,现在调试路径与最小化文件一样多,而不必担心名称冲突。另外,在调试时,您可以查看哪个包中包含哪些文件,我认为这很酷。