将供应商CSS与LESS和gulp缩小相结合后,Sourcemap错误

将供应商CSS与LESS和gulp缩小相结合后,Sourcemap错误,gulp,gulp-less,gulp-sourcemaps,Gulp,Gulp Less,Gulp Sourcemaps,我正在努力做到以下几点: 合并所有CSS文件(jQuery插件) 合并媒体查询 缩小CSS 写入源映射 之后,我尝试在另一个文件夹中执行其他操作 少翻译 合并媒体查询 缩小结果CSS 写入源映射 自动刷新的东西 看起来是这样的: gulp.task('styles', function() { var streamCSS = gulp.src(sources.css) .pipe(sourcemaps.init()) .pipe(concat('vendor.css'))

我正在努力做到以下几点:

  • 合并所有CSS文件(jQuery插件)
  • 合并媒体查询
  • 缩小CSS
  • 写入源映射
  • 之后,我尝试在另一个文件夹中执行其他操作

  • 少翻译
  • 合并媒体查询
  • 缩小结果CSS
  • 写入源映射
  • 自动刷新的东西
  • 看起来是这样的:

    gulp.task('styles', function() {
      var streamCSS = gulp.src(sources.css)
        .pipe(sourcemaps.init())
        .pipe(concat('vendor.css'))
        .pipe(cmq())
        .pipe(minify({ keepSpecialComments: '*' }))
        .pipe(sourcemaps.write());
    
      var streamLESS = gulp.src(sources.less)
        .pipe(plumber({ errorHandler: errorHandler }))
        .pipe(sourcemaps.init())
        .pipe(less())
        .on('error', swallowError)
        .pipe(cmq())
        .pipe(minify({ keepSpecialComments: '*' }))
        .pipe(sourcemaps.write())
        .pipe(prefix("last 2 versions", "> 1%", "ios >= 6", { map: true }))
        .on('error', swallowError);
    
      return es.merge(streamCSS, streamLESS)
        .pipe(plumber({ errorHandler: errorHandler }))
        .pipe(concat('main.css'))
        .pipe(gulp.dest(destinations.css))
        .pipe(connect.reload());
    });
    
    我唯一的问题是,生成的sourcemap是错误的,并且总是引用错误的LESS文件

    我使用以下库来实现这一点:

    • 大口海螺
    • 少吞咽
    • 大口自动再充气机
    • 吞咽合并媒体查询
    • 吞咽源地图
    • 吞咽缩小css
    我知道如果我省略了供应商的东西,它会起作用,但是我只希望得到一个样式表


    谢谢你的建议

    在调用sourcemap init函数之前,是否可以尝试合并流

    我还没有机会测试以下代码(省略了许多require),但您可以有一个想法:

    var-filter=require('gulp-filter');
    var lessFilter=filter('***.less');
    gulp.task('style',function()){
    return gulp.src([sources.css,sources.less])
    .pipe(sourcemaps.init())
    .管道(lessFilter)
    .管道(小于()
    .pipe(filter.restore())
    .pipe(缩小({keepSpecialComments:'*'))
    .pipe(concat('main.css'))
    .pipe(sourcemaps.write())
    .管道(目的地(dest.css))
    });