gulp: concat, uglify и inline JavaScript - исходные карты не работают

Я работаю над приложением AngularJS и использую gulp для процесса сборки. У меня есть несколько файлов JavaScript (для контроллеров, служб, директив и т. Д.), Которые я объединяю, уменьшаю и затем вставляю в index.html чтобы минимизировать количество соединений с сервером.

Здесь возникает проблема:

  • Когда я не вставляю объединенные и увеличенные файлы JavaScript в index.html исходные карты работают, когда я отлаживаю приложение с помощью инструментов разработчика.
  • Когда я делаю встроенные файлы JavaScript в index.html тогда мои контрольные точки никогда не будут достигнуты. Зачем? Я не уверен, что я делаю не так.

Это соответствующая часть моего gulpfile:

// isPublish is set to true to uglify.
// the temp-folders are here just for testing purposes, I tried with
// and without and I have also changed the order of the gulp-command.
return gulp.src(definition.srcs)
           .pipe(sourcemaps.init())
           .pipe(replace("$build:serverApiBaseUrl$", args.serverApiBaseUrl || "..."))
           .pipe(gulp.dest(targetFolder + "/temp1"))
           .pipe(concat(definition.targetFile))
           .pipe(gulp.dest(targetFolder + "/temp2"))
           .pipe(gulpif(isPublish, uglify()))
           .pipe(sourcemaps.write("./"))
           .pipe(gulp.dest(targetFolder));

Пожалуйста, смотрите здесь для полного решения, например, для структуры проекта и т. Д. Хотя я думаю, что это не имеет никакого отношения к моей проблеме.

Еще одна вещь, которую я понял, заключается в том, что, хотя точки останова попадают (когда не используется "встроенный"-мод), имена переменных по-прежнему имеют искаженный формат (т.е. только буквы). Это ожидаемое поведение браузера (т.е. инструменты разработчика не поддерживают это?), Или мне нужно указать что-то особенное для sourcemaps -command? Я не понимаю почему, так как сгенерированные исходные карты содержат names -Информация.

Обновление I (13.10.2015)

Я понял, что мог бы также использовать следующий метод:

return gulp.src(paths.target + "index.html")
           .pipe(inline({
                base: paths.target,
                js: uglify()
           }))
          .pipe(gulp.dest(paths.target));

Это, однако, не работает из-за проблемы в gulp-inline, Кажется, есть запрос на удаление, хотя и не знаю, когда он будет объединен. И даже если это сработает, я не уверен, что произойдет с исходными картами в этом случае..?

Обновление II (19.10.2015)

Версия 0.1.0 из gulp-inline был выпущен сегодня (см. запрос извлечения, упомянутый в "Обновлении 1", который теперь был объединен обратно). Теперь он работает правильно с gulp-uglify ошибка была исправлена. Я все еще не мог заставить исходные карты работать хотя. Не уверен, что это поддерживается gulp-inline,

Так что пока я все еще ищу решение..

0 ответов

Другие вопросы по тегам