У меня есть следующая задача gulp для связывания javascript:
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, исходные карты находятся и работают точки останова, но переменные не могут быть отлажены.
Возьмите этот пример фрагмента углового кода:
iarApp.config(['$animateProvider', function ($animateProvider) {
$animateProvider.classNameFilter(/angular-animate/);
}]);
Если я добавлю точку останова, чтобы увидеть значение $animateProvider
, я получу следующее:
Но если я отключу изменение переменных в Uglify:
.pipe(uglify({ mangle: false }))
Тогда это работает:
Таким образом, кажется, что плагин gulp-sourcemaps не может отслеживать переменные после того, как Uglify искажает имена.
Может ли кто-нибудь еще столкнуться с такой же проблемой и/или узнать решение?