吞下sourcemaps+不同的CSS预处理器?

吞下sourcemaps+不同的CSS预处理器?,css,gulp,gulp-less,gulp-sass,gulp-sourcemaps,Css,Gulp,Gulp Less,Gulp Sass,Gulp Sourcemaps,下面是我正在使用的任务的简化版本: g = require 'gulp' $ = require('gulp-load-plugins')() g.task 'vendor:styles', -> sass_filter = $.filter('*.scss') less_filter = $.filter('*.less') g.src(['vendor/font-awesome-4.2.0/scss/font-awesome.scss', 'vendor/b

下面是我正在使用的任务的简化版本:

g = require 'gulp'
$ = require('gulp-load-plugins')()

g.task 'vendor:styles', ->
    sass_filter = $.filter('*.scss')
    less_filter = $.filter('*.less')

    g.src(['vendor/font-awesome-4.2.0/scss/font-awesome.scss', 'vendor/bootstrap-3.2.0/less/bootstrap.less'])
        .pipe $.sourcemaps.init()
        .pipe(sass_filter).pipe($.sass()).pipe(sass_filter.restore())
        .pipe(less_filter).pipe($.less(strictMath: true)).pipe(less_filter.restore())
        .pipe $.concat('vendor.css')
        .pipe $.sourcemaps.write('./maps')
        .pipe g.dest('.tmp/styles/vendor')
这是Coffeescript,但Javascript几乎完全相同。如果上述内容难以解析,我可以提供JS

运行上述操作时,gulp sourcemaps会抛出:

gulp-sourcemap-write: source file not found:/Users/pikeas/Documents/code/pypjs/crypto/front/merged/vendor/font-awesome-4.2.0/scss/normalize.less
...(repeated x20, for print.less, carousel.less, etc)
换句话说,它在Font Awesome目录中查找引导程序的文件。我曾尝试使用gulp if代替gulp过滤器,但也失败了,出现了相同的错误


编写此任务的正确方法是什么?

我成功地编写了一个gulpfile.js,它可以处理我的项目包含的任何样式.scss、.less、.css。所有必要的文件都被编译成css,然后所有文件都会自动加上前缀,最小化并浓缩成一个文件。都有他们的源地图

const-sass=需要“吞咽-sass”; const-less=要求“无吞咽”; const gulpIf=需要“gulp-if”; const browserSync=需要“浏览器同步”。创建; const sourcemaps=需要“gulp-sourcemaps”; const postsss=需要“大口喝”postsss; const cssnano=需要“cssnano”; const autoprefixer=需要“autoprefixer”; const concat=需要“咕噜咕噜”; 吞咽。任务“风格”,功能{ 返回gulp.src['assets/libs/***.less','assets/libs/***.scss','assets/libs/***.css','!assets/libs/all.css'] .pipesourcemaps.init .pipegulpIf'***.less',less.on'error',onErrorLogContinue,gulpIf'***.scss',sass.on'error',onErrorLogContinue .风笛手[ autoprefixer{browsers:['last 2 versions']}, cssnano, ] .pipeconcat'all.css',{newLine:} .pipesourcemaps.write .pippegulp.dest‘资产/libs’ .pipebrowserSync.reload{ 溪流:对 };
};为什么要混合SCS和less?由于Font Awesome和Bootstrap都有SCS,而且可用性较低,所以选择一个预处理器会更容易。简化示例。其他供应商工具仅提供一种或另一种。您是否有可行的解决方案?不同的供应商正是我想要它的原因