Gulp正在修改我的font-face url路径

Ant*_*ard 2 javascript node.js gulp

编辑: 如果我在任务中只有一个文件,gulp-flatten,问题就会消失.也就是说,如果我的gulp.src只调用一个文件,那么gulp-flatten实际上会删除修改后的路径.我需要能够合并我的供应商css.

gulp.task('libCSS2', function() {
    gulp.src(vendor + '/font-awesome/css/font-awesome.min.css')
        .pipe(flatten())
        .pipe(concatCss('vendor.css'))
        .pipe(gulp.dest(dest + '/css'));
});
Run Code Online (Sandbox Code Playgroud)

在构建时,Gulp正在改变它(来自CSS源文件):

src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0')
Run Code Online (Sandbox Code Playgroud)

到此(CSS构建文件)

 src: url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.3.0")
Run Code Online (Sandbox Code Playgroud)

基本上它相对于旧的fontawesome位置添加了一条新路径,我想摆脱它.它为每个 URL都这样做:所以bootstrap url也搞砸了.我相信这是一个默认的gulpfonctionnality.这是我的任务,你可以看到我尝试了gulp-flatten插件但没有成功

/* ===== CSS LIB START ===== */
gulp.task('libCSS', function() {
    // Define libraries locations
    var bootstrapCss = vendor + '/bootstrap/dist/css/bootstrap.min.css';
    var slickCss = vendor + '/slick.js/slick/slick.css';
    var slickCss2 = vendor + '/slick.js/slick/slick-theme.css';
    var materializeCss = vendor + '/materialize/dist/css/materialize.min.css';
    var fontawesomeCSS = vendor + '/font-awesome/css/font-awesome.min.css';

    // Merge libraries
    return gulp.src([bootstrapCss, slickCss, slickCss2, materializeCss, fontawesomeCSS])
        // Concatenate in a single file
        .pipe(concatCss('vendor.css'))
        .pipe(flatten(''))
        .pipe(gulp.dest(dest + '/css'));
});
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹组织

app/
----vendor/
--------boostrap/
--------slick.js/
--------materialize/
--------font-awesome/
------------css/
----------------font-awesome.min.css // font-awesome goes from there
build/
----css/
--------vendor.css // to there
Run Code Online (Sandbox Code Playgroud)

谢谢

Ant*_*ard 5

concateCss是罪魁祸首

.pipe(concatCss('vendor.css', {rebaseUrls:false}))
Run Code Online (Sandbox Code Playgroud)

解决了问题