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.