javascript - 如何在我们的 mvc3 web 应用程序的产品构建中删除 JS 日志记录调用?

标签 javascript asp.net-mvc-3 bundling-and-minification

在我们的 MVC3 网络应用程序的整个 JS 中,我们对我们的日志记录方法(只是包装 console.log)进行了很多调用,我想在构建测试和生产时从 JavaScript 中删除它们构建。

目前我们正在使用 bundling and minification nuget package将我们的 JS 捆绑并缩小到一个大的缩小文件中,但我也想让它删除对日志记录方法的调用。

我们确实有一种机制可以用空函数替换日志记录方法,因此它们不会在生产中做任何工作,但它们仍然会被调用并传入各种参数。除此之外,还有“大"传递的字符串和可以删除的字符串,从而减小文件大小。

在我看来,理想的解决方案是以某种方式解析 JavaScript 并检测/删除对这些方法的调用。最好是在某种 JavaScript 引擎中,而不仅仅是正则表达式。

无论哪种方式,我只希望在生产中提供的最终 JavaScript 中删除对日志记录方法的调用。有谁知道我将如何完成这个额外的缩小?

最佳答案

是的,IBundleTransform 接口(interface)就是为这种情况设计的。在 RC 位中,这是我们的设想:

new Bundle("~/bundles/js", new LogRemoverTransform(), new JsMinify());

基本上,您构建一个包并链接两个转换,首先剥离您的日志方法,然后运行正常的缩小。在 RC 之前,您必须在 IBundleTransform 中进行组合。

关于javascript - 如何在我们的 mvc3 web 应用程序的产品构建中删除 JS 日志记录调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889237/

相关文章:

javascript - 网络桌面——你觉得它有趣吗?

css - MVC 捆绑和缩小 : converts embedded images to to URL paths

asp.net - 有没有办法在 VS2012 捆绑中使用外部 javascript/css?

asp.net - 在asp.net mvc中提供动态角色(角色不固定,不断更新)

javascript - 导出调用另一个函数而不是原始函数的新函数有什么意义?

c# - 在 MVC ASP.net 中使用 X-editable 时不要重复自己的最佳方法

javascript - React 无法识别 DOM 元素上的 `justifyContent` 属性

javascript - 直接从空格键访问模板实例对象属性

jquery - 隐藏 JSTree 中的特定节点

asp.net-mvc-3 - 在 jquery 中使用 AJAX Post 从强类型 MVC3 View 传递模型的正确方法