Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?

Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?

本文关键字:EvalTreatment for JavaScript Minifier AjaxMin Ajax      更新时间:2023-09-26

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

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

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

也许我只是不明白。我正在使用代码(带有DLL)而不是命令行。

CodeSettings类有一个EvalTreatment类选项,但我不确定什么是最好的选择…

From Microsoft (DLL源代码):

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

我认为MakeImmediateSafe(1)或MakeAllSafe (2)?你们怎么看?

提前感谢!

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