【问题标题】:SquishIt replacing with shortSquishIt 替换为短
【发布时间】:2015-12-09 17:27:00
【问题描述】:

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

javascript 缩小的问题。当它缩小像 function(imReallyLong) to function(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 无法识别。

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

谢谢。

【问题讨论】:

  • 我可以知道为什么投反对票吗?

标签: javascript c# minify squishit


【解决方案1】:

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

我认为您可以使用 MS Minifier 解决这个问题 (Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?):

.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>()

【讨论】:

  • 出于好奇,@ErçinDedeoğlu 你去了哪条路?
猜你喜欢
  • 2014-06-18
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 2013-03-11
  • 2021-08-02
  • 1970-01-01
相关资源
最近更新 更多