我在'./styles/stylus/**.styl'
中有一堆Stylus文件和'./styles/css/**.css'
中的一堆CSS文件。Gulp:使用純CSS編譯Stylus和concat
如何使用Gulp編譯Stylus文件,將結果與所有CSS文件連接並輸出到'./styles/out.css'
?
我在'./styles/stylus/**.styl'
中有一堆Stylus文件和'./styles/css/**.css'
中的一堆CSS文件。Gulp:使用純CSS編譯Stylus和concat
如何使用Gulp編譯Stylus文件,將結果與所有CSS文件連接並輸出到'./styles/out.css'
?
您可以使用gulp-filter,如:
var gulp = require('gulp');
var stylus = require('gulp-stylus');
var concat = require('gulp-concat');
var Filter = require('gulp-filter');
gulp.task('css', function() {
var filter = Filter('**/*.styl', { restore: true });
return gulp.src([
'./styles/stylus/**.styl',
'./styles/css/**.css'
])
.pipe(filter)
.pipe(stylus())
.pipe(filter.restore)
.pipe(concat('out.css'))
.pipe(gulp.dest('./styles'));
});
您應該能夠創建文件的兩個獨立的數據流,並與event-stream
合併它們:
var es = require('event-stream');
gulp.task('styles', function() {
var stylusStream = gulp.src('./styles/stylus/**.styl')
.pipe(stylus());
return es.merge(stylusStream, gulp.src('./styles/css/**.css'))
.pipe(concat('out.css'))
.pipe(gulp.dest('./styles'));
});
在手寫筆的文件,你可以@require
CSS文件:
@require 'something.css'
The n在Gulp中不需要串聯或任何其他複雜性,並且您的文件加載順序在.styl文件中明確設置。
我剛剛發現了一個很好的解決方案:在您的main.styl文件中爲每個其他.styl文件使用@require,並且只是觀看gulp.src('src/css/main.styl')
這是最好的解決方案,當你需要連接很多傳統的css樣式表時,只需使用'@require legacy/*'將不起作用,因爲globbing導入僅適用於**。styl **源文件。 – 2016-11-21 15:27:03