delphinpro
@delphinpro
frontend developer

Как заставить gulp-sourcemap работать корректно?

Почему-то gulp-sourcemaps генерирует некорректные карты кодов.
Есть задача написать task, который будет обрабатывать sass-исходники, дописывать вендорные префиксы и сжимать css в режиме "compact" (в терминологии sass-compass).
Используем gulp-sourcemaps + gulp-compass + gulp-autoprefixer. Пишем:
gulp.src('src/sass/')
	.pipe(plumber())
	.pipe(sourcemaps.init())
	.pipe(compass({
		style    : 'compact',
		sourcemap: false,
		css      : 'build/css/',
		sass     : 'src/sass/'
	}))
	.pipe(prefixer())
	.pipe(sourcemaps.write('.'))
	.pipe(gulp.dest('build/css/'))
	.pipe(connect.reload());

В результате полученную карту firefox не читает :(, т.е. не показывает адресацию на исходные sass-файлы.
Если мы выбросим sourcemaps и autoprefixer, то сам compass будет генерировать вполне корректную карту.
gulp.src('src/sass/')
	.pipe(plumber())
	.pipe(compass({
		style    : 'compact',
		sourcemap: true,
		css      : 'build/css/',
		sass     : 'src/sass/'
	}))
	.pipe(gulp.dest('build/css/'))
	.pipe(connect.reload());

Пробовал вместо gulp-compass использовать gulp-sass, результата - ноль, карты некорректные.

UPD 11.11.2015
Сегодня решил вернуться к картам. Поставил последнюю версию пакета gulp-sourcemaps и все завелось без шаманства всё с теми же тасками, что описаны выше.
  • Вопрос задан
  • 11387 просмотров
Решения вопроса 3
tyllo
@tyllo
Внутри плагина gulp-sourcemaps должны быть плагины, которые поддерживаются им (на странице плагина так и написано: All plugins between sourcemaps.init() and sourcemaps.write() need to have support for gulp-sourcemaps. ). Поддерживаемые плагины: wiki
Ответ написан
Та же ситуация, но с gulp-sass. Карты, которые генерит gulp-sourcemaps при дебаге в хроме не показывает ссылки на исходники. При этом если то же самое запилить через родной ruby sass всё чётко. Есть идеи?
Ответ написан
@faragly
У меня те же проблемы, решить пока не удается. Единственное что понял так это то что надо между sourcemaps.init() и sourcemaps.write() отключать по одному потоки и смотреть карты, я таким образом нашел 1 поток, который все портит, после его отключения названия и строки стали показываться верно, но не решилась другая проблема - при переходе на файл (он не в другом файле, а внутри css) отображается пустой файл. Проблема в путях если карта содержит подпапки, то путь получает /source/scss/blocks/blocks/main.scss - явно лишний /blocks/ от которого непонятно как избавляться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы