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, ни в каких-либо родительских областях не будут переименованы.