2017-08-02 97 views
0

是否有可能建立一个CSS文件依赖于我的主题文件夹?问题是我有几个主题,在那里用相同​​的设置gulp应采取Theme.scss并建立一个CSS文件到主题,Theme1等。gulp建立CSS依赖于文件夹

gulp.task('sass', function() { 
    return gulp.src('Css/Clients/**/theme.scss') // Gets all files ending with .scss 
    .pipe(sass({outputStyle: 'compact'})) 
    .pipe(gulp.dest('app/css')) 
    .pipe(browserSync.reload({ 
     stream: true 
    })) 
}); 

gulp.task('watch', ['browserSync', 'sass', 'php'], function() { 
    gulp.watch('Css/**/*.scss', ['sass']); 
}) 

enter image description here

编辑:

IM tryed的问题,我得到下面的解决方案看起来像这样:

enter image description here

,但我只需要在主题theme.css theme1文件夹中的文件夹ander theme1.css等等!有什么建议么 ?

gulp.task('sass', function() { 
    var folders = getFolders(scriptsPath); 

    var tasks = folders.map(function(folder) { 
     return gulp.src(path.join(scriptsPath, folder, '/**/*.scss')) 
     .pipe(sass({outputStyle: 'compact'})) 
     // concat into foldername.js 
     .pipe(concat(folder + '.css')) 
     // write to output 
     .pipe(gulp.dest(scriptsPath)) 
     // write to output again 
     .pipe(gulp.dest(scriptsPath)); 
    }); 


    return merge(tasks); 
    console.log(folders); 

}); 

回答

3

你可以像这样指定多个目标:

gulp.task('sass', function() { 
    return gulp.src('Css/Clients/**/theme.scss') // Gets all files ending with .scss 
    .pipe(sass({outputStyle: 'compact'})) 
    .pipe(gulp.dest('app/css')) 
    .pipe(gulp.dest('app/Theme')) 
    .pipe(gulp.dest('app/Theme1')) 
    .pipe(browserSync.reload({ 
     stream: true 
    })) 
}); 
+0

所以结果会是app/Theme1/Theme1.css?原因正是我需要每个文件夹只有一个文件 – mY777

0

得到它谢谢你们!

gulp.task('sass', function() { 
var folders = getFolders(scriptsPath); 

var tasks = folders.map(function(folder) { 
    return gulp.src(path.join(scriptsPath, folder, '/**/*.scss')) 
    .pipe(sass({outputStyle: 'compact'})) 
    // concat into foldername 
    .pipe(concat(folder + '.css')) 
    // write to output 
    .pipe(gulp.dest(scriptsPath+folder)) 
}); 

});