Ajax Minifier(AjaxMin) - JavaScript的EvalTreatment?

时间:2011-05-04 19:06:20

标签: javascript c# ajax asp.net-ajax

所以我只是在我的项目中使用AjaxMin.dll缩小所有js / css文件的构建/部署,并使用默认设置。结果证明这是一个坏主意。我们拥有的第三方javascript文件之一有一个很好的eval语句,其中引用了一些变量或参数。当它被缩小时,原始变量将被重命名,而不是在eval语句中重命名。这导致了生产中的一个很大的错误(FML)。

我已经决定需要为缩小过程选择更安全的设置。

关于AjaxMin的文档非常不清楚。 http://www.asp.net/ajaxlibrary/AjaxMinWithAndEval.ashx

或许我只是不理解它。我正在使用代码(使用DLL)而不是命令行。

CodeSettings类有一个EvalTreatment类选项,但我不确定选择哪个最佳选项......

来自Microsoft(DLL源代码):

using System;

namespace Microsoft.Ajax.Utilities
{
    public enum EvalTreatment
    {
        Ignore = 0,
        MakeImmediateSafe = 1,
        MakeAllSafe = 2,
    }
}

我在想MakeImmediateSafe(1)或MakeAllSafe(2)?你们有什么感想?

提前致谢!

1 个答案:

答案 0 :(得分:4)

如果您想绝对确定缩小的结果将始终工作,请使用 MakeAllSafe 选项。这将确保不会重命名eval语句范围内的任何变量,也不会重命名任何父范围中的变量。