3

我使用包gulp-lessgulp-sourcemaps. 我的 less 文件位于 下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'));
});
4

1 回答 1

4

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

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

于 2015-02-06T12:03:58.833 回答