在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以能够处理不同的环境?
我想我找到了答案。我本打算创建一个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
。因此,现在调试路径与最小化文件一样多,而不必担心名称冲突。另外,在调试时,您可以查看哪个包中包含哪些文件,我认为这很酷。