使用BundleTransformer.UglifyJs进行Javascript模糊处理
我只是在我的MVC项目中添加了一个模糊的javascript代码 但结果看起来并不难看:使用BundleTransformer.UglifyJs进行Javascript模糊处理,javascript,model-view-controller,bundle,obfuscation,Javascript,Model View Controller,Bundle,Obfuscation,我只是在我的MVC项目中添加了一个模糊的javascript代码 但结果看起来并不难看: function onDeckenstaerkeChanged(){validateCorrectDeckenstaerke();$("#dropdown-bta").empty();$.each(getBelagtraegerAbstand( 这是my web.config中配置微型服务器的部分: <bundleTransformer xmlns="http://tempuri.org/Bundl
function onDeckenstaerkeChanged(){validateCorrectDeckenstaerke();$("#dropdown-bta").empty();$.each(getBelagtraegerAbstand(
这是my 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="UglifyJsMinifier">
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
<add name="YuiJsMinifier" type="BundleTransformer.Yui.Minifiers.YuiJsMinifier, BundleTransformer.Yui" />
<add name="UglifyJsMinifier" type="BundleTransformer.UglifyJs.Minifiers.UglifyJsMinifier, BundleTransformer.UglifyJs" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</js>
</core>
</bundleTransformer>
对我来说,结果看起来是模糊的,但不是模糊的
我错过了什么?结果应该是什么样的
是否有办法调试所使用的模块?如上所述:
作为JS引擎,JavaScript引擎切换器库被使用。为了正确使用此模块,建议安装以下NuGet软件包之一:或。安装包后,需要将JavaScript引擎的名称(例如MsieJsEngine)设置为/configuration/bundleTransformer/uglify/jsEngine配置元素的name属性
要使bundle transformer UglifyJS正常工作,您需要安装JS引擎,在您的web.config代码段中,我看不到它的定义。因此,请安装或打包
重要的
根据安装的软件包,您必须在V8的web.config代码段末尾手动添加:
...
</core>
<uglify>
<jsEngine name="V8JsEngine"></jsEngine>
</uglify>
</bundleTransformer>
或者对于MsieJsEngine:
...
</core>
<uglify>
<jsEngine name="MsieJsEngine"></jsEngine>
</uglify>
</bundleTransformer>
如上所述:
作为JS引擎,JavaScript引擎切换器库被使用。为了正确使用此模块,建议安装以下NuGet软件包之一:或。安装包后,需要将JavaScript引擎的名称(例如MsieJsEngine)设置为/configuration/bundleTransformer/uglify/jsEngine配置元素的name属性
要使bundle transformer UglifyJS正常工作,您需要安装JS引擎,在您的web.config代码段中,我看不到它的定义。因此,请安装或打包
重要的
根据安装的软件包,您必须在V8的web.config代码段末尾手动添加:
...
</core>
<uglify>
<jsEngine name="V8JsEngine"></jsEngine>
</uglify>
</bundleTransformer>
或者对于MsieJsEngine:
...
</core>
<uglify>
<jsEngine name="MsieJsEngine"></jsEngine>
</uglify>
</bundleTransformer>
onDeckenstaerkeChanged函数是全局函数,因此不处理其名称
你需要让它成为本地的。为此,请将代码包装在立即调用的IIFE函数表达式中:
(function(){
...
function onDeckenstaerkeChanged(){
...
}
...
})();
还有另一种变体。如果启用mangling.topLevel选项,则可以混淆所有全局变量。在mangling.except选项中,您可以指定不需要应用模糊处理的变量名称:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
...
<uglify>
<js ...>
<mangling topLevel="true" except="$,ko,myVar" />
</js>
...
</uglify>
...
</bundleTransformer>
</configuration>
onDeckenstaerkeChanged函数是全局函数,因此不处理其名称
你需要让它成为本地的。为此,请将代码包装在立即调用的IIFE函数表达式中:
(function(){
...
function onDeckenstaerkeChanged(){
...
}
...
})();
还有另一种变体。如果启用mangling.topLevel选项,则可以混淆所有全局变量。在mangling.except选项中,您可以指定不需要应用模糊处理的变量名称:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
...
<uglify>
<js ...>
<mangling topLevel="true" except="$,ko,myVar" />
</js>
...
</uglify>
...
</bundleTransformer>
</configuration>