Ajax Minifier (AjaxMin) – EvalTreatment pour JavaScript?

Je minimisais simplement l'utilisation de AjaxMin.dll dans mon projet sur chaque version / déploiement pour tous les fichiers js / css avec les paramètres par défaut . Cela s'est avéré être une mauvaise idée. L'un des fichiers javascript tiers que nous avons a une bonne déclaration eval avec quelques variables ou paramètres référencés. Quand il est minifié, les variables d'origine sont renommées et ne sont pas renommées dans l'instruction eval. Cela a provoqué une grande erreur dans la production (FML).

J'ai décidé de choisir des paramètres plus sûrs pour le processus de minification.

La documentation sur AjaxMin n'est pas très claire. Http://www.asp.net/ajaxlibrary/AjaxMinWithAndEval.ashx

Ou peut-être que je ne le comprend pas. J'utilise le code (avec la DLL) et non la ligne de commande.

La classe CodeSettings a une option de classe EvalTreatment mais je ne sais pas quelle est la meilleure option à choisir …

De Microsoft (source DLL):

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

Je pense à MakeImmediateSafe (1) ou MakeAllSafe (2)? Qu'en pensez-vous?

Merci d'avance!

Si vous souhaitez absolument s'assurer que les résultats minifiés fonctionneront toujours , utilisez l'option MakeAllSafe . Cela garantira qu'aucune variable dans la portée de l'instruction eval, ni dans aucun domaine parent, ne sera renommée.