Javascript 如何在mvc3 web应用程序的prod构建中删除JS日志调用?
我们有很多对日志记录方法的调用,这些方法只是将console.log包装在我们的MVC3 web应用程序的整个JS中,我想在构建测试和生产版本时将它们从JavaScript中删除 目前,我们正在使用将JS打包并缩小为一个大的缩小文件,但我希望它也能删除对日志方法的调用 我们确实有一种机制,用空函数替换日志记录方法,这样它们就不会在生产环境中执行任何工作,但仍然会调用它们并传入各种参数。除此之外,还传递了一些大字符串,这些字符串可以删除,从而减少了文件大小 在我看来,理想的解决方案是以某种方式解析JavaScript并检测/删除对这些方法的调用。最好使用某种JavaScript引擎,而不仅仅是正则表达式Javascript 如何在mvc3 web应用程序的prod构建中删除JS日志调用?,javascript,asp.net-mvc-3,bundling-and-minification,Javascript,Asp.net Mvc 3,Bundling And Minification,我们有很多对日志记录方法的调用,这些方法只是将console.log包装在我们的MVC3 web应用程序的整个JS中,我想在构建测试和生产版本时将它们从JavaScript中删除 目前,我们正在使用将JS打包并缩小为一个大的缩小文件,但我希望它也能删除对日志方法的调用 我们确实有一种机制,用空函数替换日志记录方法,这样它们就不会在生产环境中执行任何工作,但仍然会调用它们并传入各种参数。除此之外,还传递了一些大字符串,这些字符串可以删除,从而减少了文件大小 在我看来,理想的解决方案是以某种方式解析
无论哪种方式,我只希望在生产中提供的最终JavaScript中删除对日志记录方法的调用。有人知道我将如何完成这个额外的缩小吗?您可以编写自己的实现,首先通过正则表达式删除对日志记录方法的调用,然后调用默认的绑定和缩小功能。只要你的电话相当简单,就不难打出来。不过,这可能会变得棘手,这取决于您如何调用日志代码 例如,我很难构建一个能够捕获整个日志调用的正则表达式,如下所示: NS.logfunction{return这将很难解析;}
但是,只要您不这样记录日志,编写正则表达式应该不难。您可以编写自己的实现,首先通过正则表达式删除对日志方法的调用,然后调用默认的绑定和缩小功能。只要你的电话相当简单,就不难打出来。不过,这可能会变得棘手,这取决于您如何调用日志代码 例如,我很难构建一个能够捕获整个日志调用的正则表达式,如下所示: NS.logfunction{return这将很难解析;} 但是,只要您不这样记录日志,编写正则表达式就不难。是的,IBundleTransform接口就是为这种情况设计的。在RC bits中,以下是我们的设想:
new Bundle("~/bundles/js", new LogRemoverTransform(), new JsMinify());
基本上,您构建一个bundle并链接两个转换,首先剥离日志方法,然后运行正常的缩小。在使用RC之前,您必须在IBundleTransform内部进行合成。是的,IBundleTransform接口就是为这种情况设计的。在RC bits中,以下是我们的设想:
new Bundle("~/bundles/js", new LogRemoverTransform(), new JsMinify());
基本上,您构建一个bundle并链接两个转换,首先剥离日志方法,然后运行正常的缩小。在使用RC之前,您必须在IBundleTransform内部进行合成。看看这里:非常好,看起来非常有前景。我必须彻底调查Valamas嘿,预处理器的东西很好用,你能把它作为一个答案发布出来吗,我会接受的?谢谢,但你应该删除这个问题。这不是我的回答。我发现一件有趣的事情是,这种预处理器类型的东西被添加到了MicrosoftAJAXminifier中。我不知道他们在iBundletTransform工作中使用了与MVC4相同的缩小器。从技术上讲,这个问题有些不同,因为我特别感兴趣的是新的捆绑和缩小功能,而不是ajax缩小器。由于新的东西可能会更受欢迎,并且在搜索中出现更多,我将继续并留下这个问题。看看这里:非常好,看起来非常有希望。我必须彻底调查Valamas嘿,预处理器的东西很好用,你能把它作为一个答案发布出来吗,我会接受的?谢谢,但你应该删除这个问题。这不是我的回答。我发现一件有趣的事情是,这种预处理器类型的东西被添加到了MicrosoftAJAXminifier中。我不知道他们在iBundletTransform工作中使用了与MVC4相同的缩小器。从技术上讲,这个问题有些不同,因为我特别感兴趣的是新的捆绑和缩小功能,而不是ajax缩小器。由于新的东西可能会更受欢迎,并且在搜索中出现更多,我将继续并留下这个问题。哇,太酷了!你做过捆绑吗?如果是的话,谢谢你,做得很好!很好的工作,我喜欢我们现在可以把转换作为nuget软件包的方式哇,太酷了!你做过捆绑吗?如果是的话,谢谢你,做得很好!干得好,我喜欢我们如何将转换作为nuget软件包 W