gulp babel - исходные карты gulp выходят с ошибками
Вот задача:
var gulp = require('gulp'),
clean = require('gulp-clean'),
copy = require('gulp-copy'),
sass = require('gulp-sass'),
concat = require('gulp-concat'),
sourcemaps = require('gulp-sourcemaps'),
uglify = require('gulp-uglify'),
babel = require('gulp-babel'),
jshint = require('gulp-jshint'),
stylish = require('jshint-stylish'),
Server = require('karma').Server,
_ = require('lodash');
gulp.task('js-build', ['copy-iso'], function(){
return gulp.src(['client/src/application.js', 'client/src/**/*.js'])
.pipe(sourcemaps.init())
.pipe(babel({
presets: ['es2015']
}))
.pipe(sourcemaps.write('.', {
sourceRoot: '/src',
includeContent: false
}))
.pipe(gulp.dest('./client/build'));
});
По сути, это создает исходную карту, которая иногда отображается неправильно. Я тестирую, загружаю его в Chrome, открываю инструменты разработчика и пытаюсь добавить точки останова. Вот пример:
источник:
(function () {
'use strict';
angular
.module('core')
.filter('phoneNumberFormat', phoneNumberFormat);
function phoneNumberFormat() {
return phoneNumberFilter;
function phoneNumberFilter(number) {
/*
@param {Number | String} number - Number that will be formatted as telephone number
Returns formatted number: (###) ###-####
else if number.length < 7: (###) ###
Does not handle country codes that are not '1' (USA)
*/
if (!number) { return ''; }
number = number.toString().replace(/[^0-9]+/g, '');
var formattedNumber = '';
// if the first character is '1', strip it out and add it back
var c = (number[0] == '1') ? '1 ' : '';
number = number[0] == '1' ? number.slice(1) : number;
// # (###) ###-#### as c (area) front-end
var area = number.substring(0, 3);
area = area.length > 0 ? area.length == 3 ? "(" + area + ") " : "(" + area : '';
var front = number.substring(3, 6);
front = front + (front.length == 3 ? '-' : '');
var end = number.substring(6, 10);
formattedNumber = c + area + front + end;
return formattedNumber;
}
}
})();
постройки:
'use strict';
(function () {
'use strict';
angular.module('core').filter('phoneNumberFormat', phoneNumberFormat);
function phoneNumberFormat() {
return phoneNumberFilter;
function phoneNumberFilter(number) {
/*
@param {Number | String} number - Number that will be formatted as telephone number
Returns formatted number: (###) ###-####
else if number.length < 7: (###) ###
Does not handle country codes that are not '1' (USA)
*/
if (!number) {
return '';
}
number = number.toString().replace(/[^0-9]+/g, '');
var formattedNumber = '';
// if the first character is '1', strip it out and add it back
var c = number[0] == '1' ? '1 ' : '';
number = number[0] == '1' ? number.slice(1) : number;
// # (###) ###-#### as c (area) front-end
var area = number.substring(0, 3);
area = area.length > 0 ? area.length == 3 ? "(" + area + ") " : "(" + area : '';
var front = number.substring(3, 6);
front = front + (front.length == 3 ? '-' : '');
var end = number.substring(6, 10);
formattedNumber = c + area + front + end;
return formattedNumber;
}
}
})();
//# sourceMappingURL=phone-number.filter.js.map
Вы можете видеть, что они почти идентичны. Тем не менее, я не могу поставить точку останова на линии:
return phoneNumberFilter;
Когда я это делаю (помещаю точку останова либо в исходный, либо во встроенный файл), меня перенаправляют на строку под ней (function phoneNumberFilter(number) {
).
Эти странные перенаправления появляются почти в каждом файле, и я не могу найти какой-либо рифмы или причины для них. Иногда они перенаправляют строку несколько раз до конца функции видимости... idk.
Заранее спасибо.