Ajax Minifier (AjaxMin) - EvalTreatment для JavaScript? - PullRequest
2 голосов
/ 04 мая 2011

Таким образом, я просто минимизировал использование 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 Ответ

4 голосов
/ 17 апреля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...