gpt4 book ai didi

javascript - 如何使用 MVC.NET Bundle 配置文件从 js 文件中删除 console.log

转载 作者:行者123 更新时间:2023-12-01 02:59:21 26 4
gpt4 key购买 nike

我当前的捆绑配置连接所有脚本文件并将其缩小并生成单个文件。但没有从 js 文件中删除 console.log 行,如何添加配置以删除 console.log() 文件中的行。我当前的配置设置是

       bundles.Add(
new Bundle(
"~/Scripts/js-bundle",
new IBundleTransform[] {new JsMinify() }).Include(
"~/Scripts/script1.js",
"~/Scripts/script2.js",
"~/Scripts/script3.js"))

我尝试添加 LogRemoverTransform() 但出现一些错误

enter image description here

最佳答案

您需要通过实现IBundleTransform来创建自己的Bundle Transformation。您可以使用this regex ( borrowed from this question ) 获取 console.logconsole.info 等实例并将其替换为空字符串。

public class LogRemoverTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
var compiled = string.Empty;
var pattern = "console.(log|debug|info|warn|error|assert|dir|dirxml|trace|group|groupEnd|time|timeEnd|profile|profileEnd|count)\\((.*)\\);?";

foreach (var file in response.Files)
{
// read text from js file, and replace the the matched parts with empty string
compiled += Regex.Replace(File.ReadAllText(HttpContext.Current.Server.MapPath(file.IncludedVirtualPath)), pattern, string.Empty);
}

response.Content = compiled;
response.ContentType = "text/javascript";
}
}

然后在您的BundleConfig中:

bundles.Add(new Bundle("~/Scripts/js-bundle",  new LogRemoverTransform(), new JsMinify())
.Include("~/Scripts/script1.js",
"~/Scripts/script2.js",
"~/Scripts/script3.js"));

如果js文件非常大,请使用StreamReader而不是File.ReadAllText()

关于javascript - 如何使用 MVC.NET Bundle 配置文件从 js 文件中删除 console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46543947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com