3

У меня есть следующий глоток задача для комплектации JavaScript:Отладочных переменные не работают с глотком sourcemaps + уродовать

gulp.task('js', function() { 
    return gulp.src(paths.js) 
     .pipe(sourcemaps.init()) 
     .pipe(uglify()) 
     .pipe(concat('bundle.min.js')) 
     .pipe(sourcemaps.write('./')) 
     .pipe(gulp.dest('dist')); 
}); 

Когда я запускаю это в Дев инструментах Chrome, sourcemaps найдены и контрольные точки работают, но переменные могут 't отлаживается.

Возьмите этот пример кусок углового кода:

iarApp.config(['$animateProvider', function ($animateProvider) { 
    $animateProvider.classNameFilter(/angular-animate/); 
}]); 

Если добавить точку останова, чтобы увидеть значение $animateProvider, я получаю следующее:

enter image description here

Но если отключить переменная обработка в Uglify:

.pipe(uglify({ mangle: false })) 

Тогда это работает:

enter image description here

Таким образом, кажется, что Глоток-sourcemaps плагин не может следить за переменными после уродовать искалечил имена.

Может ли кто-нибудь еще получить такую ​​же проблему и/или знать решение?

+2

Переменные переименовываются, когда исходные файлы искажены. Вы можете получить доступ к переменной, но через свое искаженное имя. Добавление исходной карты помогает только найти, какая строка возникла в фактическом источнике, но переменные не переведены. – SeinopSys

ответ

2

Оказывается, в настоящее время это невозможно, так как это не является частью спецификации для исходных карт.

Есть someproposals до add этой функции, поэтому нам придется подождать, пока спецификации и реализации не будут обновлены.