源地图的路径是错误的

时间:2014-11-23 20:52:54

标签: gulp source-maps gulp-less gulp-sourcemaps

我使用了包gulp-lessgulp-sourcemaps。我的较少文件位于Styles/main.less下,但生成的源地图指向source/main.less(其中source/似乎是前缀)。如何解决此问题,因此源地图正确指向source/Styles/main.less

我的gulp任务很简单:

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'));
});

1 个答案:

答案 0 :(得分:4)

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

应该适合你。默认情况下,您将源内容包含在源地图文件中,sourceRoot可能是' / source /' ,这意味着要使用嵌入的源文件。 includeContent:false会阻止将源嵌入到源图文件中,您还必须将sourceRoot属性设置为从保存源图到源文件所在位置的相对路径。在我的示例中,它将为Styles文件夹查找一个文件夹,它将以源图sources数组中的所有路径为前缀。