

gulpとjade, compassを使ってフロントのビルドをしています。

[code]

    ── jade
    │   │   ├── _partial
    │   │   │   ├── _banners.jade
    │   │   │   ├── _breadcrumb.jade
    │   │   │   ├── _fixed_header.jade
    │   │   │   ├── _footer.jade
    │   │   │   ├── _head.jade
    │   │   │   ├── _header.jade
    │   │   │   ├── _lists.jade
    │   │   │   ├── _maps.jade
    │   │   │   ├── _recommend.jade
    │   │   │   ├── _second_banner.jade
    │   │   │   ├── _sidebar.jade
    │   │   │   ├── _top_banner.jade
    │   │   │   ├── _top_search.jade
    │   │   │   └── _tweets.jade
    │   │   └── index.jade
    
[/code]

という構成で`index.html`のみ出力をしたいのですが、`_partial`フォルダも一緒に出力されてしまいます。

以下gulpfile.jsになります。

[code]

    'use strict';
    var gulp = require('gulp');
    var compass = require('gulp-compass');
    var jade = require('gulp-jade');
    var plumber = require('gulp-plumber');
    
    gulp.task('jade', function() {
        gulp.src('./app/jade/**/*.jade')
        .pipe(plumber())
        .pipe(jade({
            pretty: true
        }))
        .pipe(gulp.dest('./dist/html'));
    });
    
    gulp.task('compass', function() {
        gulp.src('compass', function() {
            gulp.src('.app/sass/**/*.scss')
            .pipe(plumber())
            .pipe(compass({
                config_file: 'config.rb',
                comments: false,
                css: './dist/css/',
                sass: './app/sass/'
            }));
        });
    });
    
    gulp.task('watch', ['jade','compass'], function() {
        gulp.watch('./app/jade/**/*.jade', ['jade']);
        gulp.watch('./app/sass/**/*.scss', ['compass']);
    });
    
    gulp.task('default', ['jade', 'compass']);
    
[/code]

どなたかご教示いただけると幸いです。  
宜しくお願い致します。


CC BY-SA 3.0
2015-11-22T02:29:08.797
19154
2016-10-23T02:01:39.253
8500
question
javascript node.js gulp
gulpfile.jsでアンダースコアのファイルも出力されてしまう


`gulp.src`で`!`を使って取得したくないパスを指定します。

[code]

    var gulp = require("gulp");
    
    gulp.task("build", function() {
      gulp.src(["source/**/*", "!source/_**/*", "!source/**/_*"])
        .pipe(gulp.dest("build"));
    });
    
[/code]

上記の状態で`gulp build`を実行すると次のようになります。

[code]

    /
    + node_modules/
    + source/
    |   + _partial/
    |   |   + _partial.html
    |   |   + partial.html
    |   |
    |   + _index.html
    |   + index.html
    |
    + build/
    |   + index.html
    |
    + gulpfile.js
    + package.json
    
[/code]


CC BY-SA 3.0
2015-12-02T11:40:10.123
19561
2015-12-02T11:40:10.123
13493
19154
answer


`gulp.src`の引数は[glob](https://www.npmjs.com/package/glob)で処理されるので、頭に`_`が付くファイルを一律で処理の対象外としたい場合はシンプルに以下のように書けます。

[code]

    gulp.task('jade', function() {
        gulp.src('./app/jade/**/!(_)*.jade')
        .pipe(plumber())
        .pipe(jade({
            pretty: true
        }))
        .pipe(gulp.dest('./dist/html'));
    });
    
[/code]


CC BY-SA 3.0
2016-02-24T07:17:50.327
22474
2016-02-24T07:17:50.327
14466
19154
answer