2014-11-23 4 views
3

Я использую пакеты gulp-less и gulp-sourcemaps. Мой меньше файлов находится под Styles/main.less, но сгенерированная карта источника указывает на source/main.less (где source/ представляется префиксом). Как исправить это, поэтому исходная карта правильно указывает на source/Styles/main.less?Путь к исходной карте неверен

Моя глотком задача довольно проста:

var gulp  = require('gulp'), 
    less  = require('gulp-less'), 
    gulpif  = require('gulp-if'), 
    sourcemaps = require('gulp-sourcemaps'); 

var paths = { 
    styles: [ 
     'Styles/**/*.less', 
     '!**/*.min.css' 
    ], 
    wwwRoot: 'wwwroot/' 
} 

var isLessFile = function(file) { return /.less$/.test(file.path); } 

gulp.task('styles', function() { 
    return gulp 
     .src(paths.styles) 
     .pipe(sourcemaps.init()) 
      .pipe(gulpif(isLessFile, less())) 
     .pipe(sourcemaps.write('.')) 
     .pipe(gulp.dest(paths.wwwRoot + 'styles')); 
}); 
+0

Проверьте опцию 'sourceRoot' из [gulp-sourcemaps docs] (https://github.com/floridoo/gulp-sourcemaps#write-options). – Heikki

ответ

4

sourcemaps.write('.',{includeContent:false, sourceRoot:'../Styles'})

Должно работать для вас. По умолчанию вы включаете исходный контент в файл sourcemap, а sourceRoot, вероятно, '/ source /', что означает использование встроенных исходных файлов. includeContent:false предотвратит вложение источников в файл sourcemap, вы также должны установить свойство sourceRoot в относительный путь, откуда вы сохраняете исходную карту, где находятся исходные файлы. В моем примере он будет выглядеть в одной папке для папки Styles, это будет префикс для всех путей в вашем массиве sourcemaps sources.

Смежные вопросы