gulp-sourcemaps не включает содержимое при использовании gulp-less и gulp-minify-css

У меня есть Gulp Taks, как это:

var gulp = require('gulp');
var less = require('gulp-less');
var minifyCss = require('gulp-minify-css');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('less', function() {
    return gulp.src('./less/*.less')
        .pipe(sourcemaps.init())
        .pipe(less())
        .pipe(minifyCss())
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest('./assets/css'));
});

Файл.css создается так же, как и исходный файл карты. Однако исходная карта не имеет содержимого ("sourcesContent": [null,null,...,null]), что должно иметь место, поскольку плагин sourcemaps по умолчанию говорит, что он будет включать содержимое (я также пытался явно установка includeContent в true).

Когда я удаляю шаг минификации, он работает хорошо, и я вижу содержимое исходных файлов поменьше, поэтому я проверил, поддерживает ли minify-css исходные карты и согласно списку плагинов.

Я делаю что-то неправильно? Есть ли известная несовместимость между less и minify-css при генерации исходных карт?

1 ответ

Решение

Sourecemaps довольно молоды в minifyCSS, и впоследствии gulp-minify-css и, кажется, все еще глючит в некоторой степени. Я не нашел этот конкретный случай в трекере ошибок, но наткнулся на похожие проблемы при использовании Sass.

Я нашел обходной путь, используя аналогичный плагин на основе PostCSS. Это не так элегантно, как другие, но все же лучше, чем включение плагина CSSClean в LESS;-)

var less = require('gulp-less');
var sourcemaps = require('gulp-sourcemaps');
var postcss = require('gulp-postcss');
var csswring = require('csswring');

gulp.task('less', function() {
    return gulp.src('./bower_components/bootstrap/less/bootstrap.less')
        .pipe(sourcemaps.init())
        .pipe(less())
        .pipe(postcss([csswring]))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./assets/css'));
});

альтернативно, вы можете вызывать minifyCSS только для производственного режима, Sourcemaps только для режима DEV, если ваша настройка это позволяет.

Надеюсь, это поможет!

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