所以我只是在我的项目中使用默认设置对所有 js/css 文件的每个构建/部署中的 AjaxMin.dll 进行缩小。事实证明这是一个坏主意。我们拥有的第三方 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 语句范围内的变量以及任何父范围内的变量都不会被重命名。
关于javascript - Ajax Minifier (AjaxMin) - JavaScript 的 EvalTreatment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888580/