Ajax Minifier(AjaxMin) – JavaScript的EvalTreatment?

所以我只是在我的项目中使用默认设置在所有js / css文件的每个构建/部署中使用AjaxMin.dll。 结果certificate这是一个坏主意。 我们拥有的第三方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)? 你们有什么感想?

提前致谢!

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