1

我正在使用 9.8.0 最新的SquishIt稳定框架。

javascript缩小的问题。当它将长变量(如函数(imReallyLong)) 缩小为 函数(n)时

这对于缩小是可以的,但前提是您不使用 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 不知道它。

是否可以防止更改变量选项或类似的东西?还是更酷的框架?

谢谢你。

4

1 回答 1

2

这是缩小器的行为,而不是 squishit。

我认为您可以使用类似这样的东西(Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?)使用 MS Minifier 解决它:

.WithMinifier(new MsMinifier(new CodeSettings { EvalTreatment = EvalTreatment.MakeAllSafe }))

YUI minifier 有一个 ignoreEval 选项,看起来它允许调用 eval 的函数被压缩(https://github.com/BillyChan501/YUI-Compressor-.NET/blob/master/Projects/Yahoo.Yui.Compressor/Model %20Tests/JavaScriptCompressorTest.cs#L218-L256)。因此,您使用默认 YUI 选项进行缩小的示例可能“正常工作”?

.WithMinifier<YuiMinifier>()
于 2015-09-13T21:38:47.440 回答