0

次のフォルダーとファイル構造があります。

Vendor   
  bootstrap
    css
      -bootstrap.css
    js
      -bootstrap.js   
  font-awesome
    css
      -font-awesome.css   
  nivo-slider
    -nivo-slider.css   
  theme
    -theme.css
    -theme-animate.css
    -theme-blog.css
    -theme-responsive.css
    -theme-shop.css


css ファイルが次の特定の順序でストリームに追加されるようにしています。

1) bootstrap.css ファイル
src/vendor/bootstrap/css/bootstrap.css

2) 'src/vendor/' サブディレクトリ内の他のすべての css ファイル (順不同) (将来さらに追加する予定なので、あまり具体的にしたくありません)
src/vendor/font-素晴らしい
/css/font-awesome.css src/vendor/nivo-slider/nivo-slider.css

3) 'src/vendor/theme/' ディレクトリ内の特定の css ファイル (順不同)
src/vendor/theme/theme.css
src/vendor/theme/theme-animate.css
src/vendor/theme/theme-blog .css
src/vendor/theme/theme-shop.css

4) 最後に、theme-responsive.css ファイル
src/vendor/theme/theme-responsive.css

これが私の試みです:

var gulp = require('gulp');
var streamqueue = require('streamqueue');

gulp.task('styles', function() {
    var stream = streamqueue({ objectMode: true });

    // file that needs to be at the beginning of the concatenated css file
    stream.queue(
        gulp.src('src/vendor/**/bootstrap.css')
    );

    //Now I want to add most of the remaining files, except for the bootstrap.css file that was already added as well as any files with the word theme at the beginning of it
    stream.queue(
        gulp.src('src/vendor/**/*.css', '!src/vendor/**/bootstrap.css', '!src/vendor/**/theme*.css')
    );

    //Now I would like to add the files that begin with the word theme at the beginning, except for theme-responsive.css
    stream.queue(
        gulp.src('src/vendor/theme/**/*.css', '!src/vendor/theme/theme-responsive.css')
    );

    //Now I would like to add the theme-responsive.css file
    stream.queue(
        gulp.src('src/vendor/theme/theme-responsive.css')
    ); 

    return stream.done()
        .pipe(concat("app.css"))
        .pipe(gulp.dest('public/css/'))
});

残念ながら、現在このスクリプトを実行すると、無視すべき bootstrap.css およびその他のファイルが複数回追加されています。gulp を使用してファイルを無視するにはどうすればよいですか?

4

2 に答える 2

1

gulp-concat を使用してみてください。ファイルは、gulp.src 関数で指定された順序で連結されます。https://www.npmjs.org/package/gulp-concat

var concat = require('gulp-concat');

gulp.task('scripts', function() {
    gulp.src(['src/vendor/bootstrap/**/*.css', 
              'src/vendor/font-awesome/**/*.css', 
              'src/vendor/nivo-slider/**/*.css', 
              'src/vendor/theme/theme.css',
              'src/vendor/theme/theme-animate.css',
              'src/vendor/theme/theme-blog.css',
              'src/vendor/theme/theme-shop.css',
              'src/vendor/theme/theme-responsive.css'])
        .pipe(concat('app.css'))
        .pipe(gulp.dest('public/css/'))
    ;
});
于 2014-09-13T18:24:44.380 に答える