SquishIt 替换为 short
SquishIt replacing with short
我正在使用 SquishIt.
的 9.8.0 最新稳定框架
javascript 缩小有问题。当它缩小像 function(imReallyLong) to [=28= 这样的长变量时]函数(n)
这对于 minify 没问题,但前提是你不使用 eval()!
我的方法是:
Fire: function (jDto) {
var sectionName = Enum.Parse(Enum.SectionID, jDto.SectionID);
eval('Section.Init.' + sectionName + '(jDto)');
},
缩小后:
Fire: function (n) {
var t = Enum.Parse(Enum.SectionID, n.SectionID);
eval("Section.Init."+t+"(jDto)")
},
问题jDto变量。它被硬编码为字符串,SquishIt 无法识别它。
是否可以防止更改变量选项或类似的东西?还是更酷的框架?
谢谢。
这是缩小器行为,而不是挤压行为。
我认为您可以使用 MS Minifier 解决这个问题,方法如下 (Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?):
.WithMinifier(new MsMinifier(new CodeSettings { EvalTreatment = EvalTreatment.MakeAllSafe }))
YUI 压缩器有一个 ignoreEval 选项,看起来它允许调用 eval 的函数被压缩 (https://github.com/BillyChan501/YUI-Compressor-.NET/blob/master/Projects/Yahoo.Yui.Compressor/Model%20Tests/JavaScriptCompressorTest.cs#L218-L256)。所以你的例子可能 "just work" 使用默认的 YUI 选项进行缩小?
.WithMinifier<YuiMinifier>()
我正在使用 SquishIt.
的 9.8.0 最新稳定框架javascript 缩小有问题。当它缩小像 function(imReallyLong) to [=28= 这样的长变量时]函数(n)
这对于 minify 没问题,但前提是你不使用 eval()!
我的方法是:
Fire: function (jDto) {
var sectionName = Enum.Parse(Enum.SectionID, jDto.SectionID);
eval('Section.Init.' + sectionName + '(jDto)');
},
缩小后:
Fire: function (n) {
var t = Enum.Parse(Enum.SectionID, n.SectionID);
eval("Section.Init."+t+"(jDto)")
},
问题jDto变量。它被硬编码为字符串,SquishIt 无法识别它。
是否可以防止更改变量选项或类似的东西?还是更酷的框架?
谢谢。
这是缩小器行为,而不是挤压行为。
我认为您可以使用 MS Minifier 解决这个问题,方法如下 (Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?):
.WithMinifier(new MsMinifier(new CodeSettings { EvalTreatment = EvalTreatment.MakeAllSafe }))
YUI 压缩器有一个 ignoreEval 选项,看起来它允许调用 eval 的函数被压缩 (https://github.com/BillyChan501/YUI-Compressor-.NET/blob/master/Projects/Yahoo.Yui.Compressor/Model%20Tests/JavaScriptCompressorTest.cs#L218-L256)。所以你的例子可能 "just work" 使用默认的 YUI 选项进行缩小?
.WithMinifier<YuiMinifier>()