Ajax Minifier (AjaxMin) - EvalTreatment для JavaScript?

Так что я просто уменьшал использование 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)? Что, вы парни, думаете?

Заранее спасибо!

1 ответ

Решение

Если вы хотите быть абсолютно уверены, что минимизированные результаты всегда будут работать, используйте опцию MakeAllSafe. Это гарантирует, что ни переменные в области действия оператора eval, ни в каких-либо родительских областях не будут переименованы.

Другие вопросы по тегам