2016-12-07 4 views
0

ソースコードは2つのプロジェクトで使用されます。各プロジェクトに共通のコードがあります。 gulpタスクを介して条件付きでモジュール/フォルダ/ディレクトリを無視したい。条件付きでgulp.srcのファイルを無視する

私は次の操作を実行した場合、それは完全に

return gulp.src(
    config.appMarkupFiles 
    '!app/settings', '!app/settings/**' 
) 

の作品しかし、私は条件付きでそれをやってみたいです。 gulp-filterを使って次のコードを試してみましたが、私にとってはうまくいきません。

var isQA = $.yargs.argv.stage === 'qa'; 

var filterSettings = $.filter(['!app/settings{, /**}']) 
return gulp.src(
    config.appMarkupFiles 
) 
.pipe(($.if(isQA,$.filter(filterSettings))) 

folder structure for reference only.

答えて

1

あなたは条件付きでgulp.src()内のファイルを除外するternary operatorを使用することができますので、あなたのgulpfileはただのJavaScriptです:

var isQA = $.yargs.argv.stage === 'qa'; 

gulp.task('default', function() { 
    return gulp.src([config.appMarkupFiles].concat((isQA) ? ['!app/settings{,/**}'] : [])) 
    .pipe(gulp.dest('dist')); 
}); 

gulp-filter作品を使用していますが、あなたのコード内の2つのミスがありました:

  1. !app/settings{, /**}
  2. $.filterを2回適用しています。ここで

gulp-filterを使用して作業ソリューションです:

var isQA = $.yargs.argv.stage === 'qa'; 

gulp.task('default', function() { 
    return gulp.src(config.appMarkupFiles) 
    .pipe($.if(isQA, $.filter(['!app/settings{,/**}']))) 
    .pipe(gulp.dest('dist')); 
}); 
+0

何らかの理由で、これが機能していません。私はあなたが代わりに提案した両方のオプションを試しました。まだ運がない。 –

+0

私があなたを助けてくれるようにするには、もう少し具体的にする必要があります。 –

+0

すべてのマークアップファイルを無視しているわけではありません。 from設定フォルダだけではありません。私がコメントすると、すべてのマークアップファイルはwwwに処理されます。 –

関連する問題