【问题标题】:Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript?Ajax Minifier (AjaxMin) - JavaScript 的 EvalTreatment?
【发布时间】:2011-08-18 19:36:06
【问题描述】:

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

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

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

或者我只是不明白。我使用的是代码(带有 DLL)而不是命令行。

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

来自微软(DLL 源):

using System;

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

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

提前致谢!

【问题讨论】:

  • 我在使用 Ajax.Net(它的旧版本)时遇到了类似的问题,我正在缩小它的常见 javascript,其中包含一行:eval("r=" + ....,我将其更改为 r=eval("r=" + ...为我修好了。

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


【解决方案1】:

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

【讨论】:

  • 是的,我最终做到了。 CssComment.All 也适用于 CSS 上的 CommentMode。你已经创建了一个真正令人惊叹的类库。谢谢!。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2013-04-16
相关资源
最近更新 更多