因此,我只是在我的项目中使用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)?你们觉得怎么样?
提前感谢!
发布于 2012-04-17 16:44:28
如果您想确保最小化的结果始终有效,请使用MakeAllSafe选项。这将确保eval语句的作用域中的变量和任何父作用域中的变量都不会被重命名。
https://stackoverflow.com/questions/5888580
复制相似问题