gpt4 book ai didi

Javascript 包混淆和 Bundletransformer

转载 作者:行者123 更新时间:2023-11-29 10:44:04 36 4
gpt4 key购买 nike

我试图动态混淆我们的 JavaScript 包的输出并遇到了 bundletransformer (一个使用 YUI Compressor 的捆绑扩展),但没有成功实现它!到目前为止,通过阅读提供的 documentation我在 RegisterBundles 方法中编写了以下代码:

        var nullBuilder = new NullBuilder();           
var cssTransformer = new CssTransformer();

var yuiSettings = new BundleTransformer.Yui.Configuration.YuiSettings();
yuiSettings.JsMinifier.ObfuscateJavascript = true;

var jsTransformer = new JsTransformer();

var nullOrderer = new NullOrderer();

var scriptBundle = new CustomScriptBundle("~/jscbundle/").Include(
"~/Assets/Scripts/jquery.js",
"~/Assets/Scripts/jquery-ui.js");

scriptBundle.Builder = nullBuilder;
scriptBundle.Orderer = nullOrderer;


scriptBundle.Transforms.Add(jsTransformer);

bundles.Add(scriptBundle);

和 web.config 中的以下代码:

<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
<core>
<css>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
<add name="YuiCssMinifier" type="BundleTransformer.Yui.Minifiers.YuiCssMinifier, BundleTransformer.Yui" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</css>
<js defaultMinifier="YuiJsMinifier" usePreMinifiedFiles="true">
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
<add name="YuiJsMinifier" type="BundleTransformer.Yui.Minifiers.YuiJsMinifier, BundleTransformer.Yui" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</js>
</core>
<yui>
<css compressionType="Standard" removeComments="true" lineBreakPosition="-1" />
<js compressionType="Standard" obfuscateJavascript="true" preserveAllSemicolons="false" disableOptimizations="false" ignoreEval="false" severity="0" lineBreakPosition="-1" encoding="UTF8" threadCulture="en-us" />
</yui>

从捆绑输出来看,我可以推断它不仅没有被混淆,而且压缩根本没有生效!我在网上找不到任何示例,并尝试在这里和那里更改一些设置,但没有成功!所以我很无能,任何解决方案或建议将不胜感激。提前致谢!

最佳答案

巴哈多尔

其实,我们只需要很简单的代码:

namespace TestYui
{
using System.Web.Optimization;

using BundleTransformer.Core.Bundles;
using BundleTransformer.Core.Orderers;

public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
var nullOrderer = new NullOrderer();

var scriptBundle = new CustomScriptBundle("~/jscbundle/");
scriptBundle.Include(
"~/Assets/Scripts/jquery.js",
"~/Assets/Scripts/jquery-ui.js");
scriptBundle.Orderer = nullOrderer;

bundles.Add(scriptBundle);
}
}
}

以及 Web.config 文件中的设置:

<configuration>

<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
<core>
<css>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
<add name="YuiCssMinifier" type="BundleTransformer.Yui.Minifiers.YuiCssMinifier, BundleTransformer.Yui" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</css>
<js defaultMinifier="YuiJsMinifier">
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
<add name="YuiJsMinifier" type="BundleTransformer.Yui.Minifiers.YuiJsMinifier, BundleTransformer.Yui" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</js>
</core>
</bundleTransformer>

</configuration>

实际上,问题是由 Web 应用程序在 Debug模式下运行引起的。

使用 Web.config 文件中的以下设置将 Web 应用程序切换到 Release模式:

<configuration>

<system.web>
<compilation debug="false" … />

</system.web>

</configuration>

或者在App_Start\BundleConfig.cs文件中添加以下代码:

BundleTable.EnableOptimizations = true;

在您阅读 Bundle Transformer 的文档之前,我建议您阅读第 “Bundling and Minification 章” 的 ASP.NET MVC 4 tutorial .

关于Javascript 包混淆和 Bundletransformer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894527/

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