JavaScript 번들의 출력을 난독 화하려고 시도하여 bundletransformer (YUI 압축기를 사용하는 번들 확장)을 발견했지만 구현에 성공하지 못했습니다. 지금까지 내가 RegisterBundles 방법에 다음 코드를 작성한 제공 documentation 읽어 :자바 스크립트 번들 난독 화 및 번들 변환기
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>
을 번들 출력 나는 난독 화되지 않았을뿐만 아니라 압축이 전혀 영향을 미치지 않는다고 추론 할 수있다. 나는 어떤 샘플도 온라인으로 찾을 수 없었고, 여기 저기 운이없는 몇 가지 설정을 변경하려고 시도했다! 그래서 나는 꽤 단서가없고 어떤 해결책이나 제안이라도 대단히 감사 할 것입니다. 미리 감사드립니다! 것을,
<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.config
파일
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);
}
}
}
및 설정 :
응답을 보내 주셔서 감사 드리며 코드가 엉망인 것에 대해 유감스럽게 생각합니다. 나는 우둔한 마음으로 설정을 수동으로 설정하려고 했으므로 ... 제공 한 코드로 다시 시도하고 곧보고 할 것입니다. . BTW 디버그가 이미 "false"로 설정되었고 EnableOptimizations가 "true"로 설정되었습니다. –
친애하는 @Andrey, 불행히도 결과가 여전히 동일하고 또한 친절하게 제공되는 코드에 난독 처리와 관련된 설정이 포함되어 있지 않은 것으로 나타났습니다. 그 외에도 태그를 추가했습니다. 원래의 질문이지만 결과는 여전히 축소 된 것처럼 보이지만 난독 화되지는 않으며 주석도 제거되지 않습니다. YUI 모듈이 호출되는지 여부를 디버깅 할 수있는 방법을 제안 해 주시겠습니까? 또는 프로세스를 디버깅하는 방법은 무엇입니까? 당신의 도움을 주셔서 대단히 감사합니다. –
제공된 번들러 코드에 새로운 JsTransformer를 추가하는 코드가 포함되어 있지 않은 것으로 나타났습니다. –