Я использую BundleTransformer.Yui.Minifiers.YuiJsMinifier в asp.net проекте MVC 4, но я думаю, что это YUI компрессор ошибка ...YUI JS Minifier испортите код
...
var varName='...';
alert(varName); //alert('...')
$.ajax({
url: url,
success: function (t, s) {
alert(varName); //alert(t);
}
Когда BundleTrasformer преуменьшать & Затемнение этот код, используя переменную varName компрессора YUI, становится t, а параметр функции t остается t, поэтому varName get перезаписывается с помощью t ... checkout commented alert ... Мой вопрос: должен ли я менять компрессор или, может быть, переименовать все одно и два буквенные переменные в более длинные? Я делаю что-то неправильно? , если я просто изменить одну строку кода, все в порядке, поэтому я уверен, что это YUI компрессор ошибка
...
var varName='...';
alert(varName);
$.ajax({
url: url,
success: function (data, s) {
alert(varName);
}
PS Я знаю, что это не хорошая практика, чтобы иметь имена переменных одну букву, но она по-прежнему YUI ошибка компрессора ... PPS: Я использую функцию eval внутри succes. (Знайте, что это тоже не очень хорошая практика, но, тем не менее, компрессор YUI не должен разрушать код: /)
Вы можете показать свою версию кода и мини-код? В основном YUI Compressor - это синтаксический анализатор, который удаляет пробелы, удаляет комментарии и переименовывает длинные имена переменных с короткими, и делает это разумным образом, учитывая область видимости переменных и т. Д., Основанную на многих вариантах использования. Эти варианты использования должны быть вполне нормальными, чтобы иметь функциональный минифицированный код. Так что я пытаюсь сказать, что инженеры Yahoo были более сосредоточены на том, чтобы сделать работу с миниварами, как ожидалось, в «вполне нормальных» случаях, а не спрашивать себя о «странных» случаях использования, потому что их может быть много! – eAbi
Я не могу дать вам полный код, но это целая важная часть ... – dado89