如何删除我们的我们的MVC3 Web应用程序的构建督促JS记录电话?(How to remove J

2019-09-17 18:24发布

我们已经在MVC3 Web应用程序得到了很多电话给我们的测井方法(即只是包装的console.log)都在我们的JS,我想,当我们建立我们的测试和生产建立从JavaScript的删除它们。

目前,我们正在使用的捆绑和微小NuGet包捆绑,然后再缩小我们的JS成一个大文件缩小的,但我想将它撕裂了的记录方法的调用以及。

我们确实有在地方,替换空函数的测井方法,使他们不会做任何生产工作机制,但他们仍然被称为和各种参数在过去了。在此之上,有“大”的字符串,传递和那些可以被删除,减少文件大小。

在我心中理想的解决办法是莫名其妙地解析JavaScript和检测/删除这些方法的调用。 最好是在某种JavaScript引擎,而不仅仅是一个正则表达式。

无论哪种方式,我只是想我要在服务直至生产最终的JavaScript打消了我的记录方法的调用。 有谁知道我是怎么想做到这一点额外的缩小?

Answer 1:

是的,在IBundleTransform接口是专为这种情况。 在RC位这里是我们设想:

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

基本上,你构建一个包和链中的两个变换,首先剥离日志方法,然后通过正常的微小运行。 在此之前RC,你必须做你的内部组成IBundleTransform



Answer 2:

你可以写自己实现IBundleTransform首先通过正则表达式删除调用日志记录方法,然后调用默认捆绑和缩小功能。 只要您的通话是相当简单的,它不应该是很难拿出。 它可能变得棘手,虽然,这取决于你怎么称呼你的日志代码。

例如,它会是相当硬的(对我来说)建立一个正则表达式,将赶上日志调用像这样的整体:

NS.log(function () { return "this is going to be hard to parse"; }());

但是,只要你不记录这样的,它不应该是一个困难的正则表达式来写。



文章来源: How to remove JS logging calls in our prod build of our mvc3 web app?