2016-09-19 6 views
0

ノードアプリケーション用のビルドスクリプトを作成しています。Gulp src glob:複数のファイルパターンが一致しません

私はPowershell(PSake)スクリプトを作成しましたが、Macで実行する必要があるためGulpに移植する必要があります。

基本的には、ソースコードをコピーして(readme &のような不要なファイルをすべて削除して)、クライアントPCにインストールされるパッケージを作成するので、できるだけファイル番号を小さくしたい。一つの場所で

は、私のPowerShellは、次のようになります。

Get-ChildItem "$srcout\node_modules\" -Recurse | ? { 
    $_.FullName -match "\\\.bin\\" ` 
     -or $_.Name -match "[\w]+\.md$" ` 
     -or $_.Name -match "licen[c|s]e" ` 
     -or $_.Name -match "authors" ` 
     -or $_.Name -match "bower.json" ` 
     -or $_.Name -match "gruntfile\.js" ` 
     -or $_.Name -match "makefile" ` 
     -or $_.Name -match "cakefile" 
    } | % { 
     Remove-Item "$($_.FullName)" -Force -Recurse 
    } 

は、これまでのところ、私はがぶ飲みのためにこれを書いた:

var pump = require('pump'); 
var through = require('through2'); 

    pump([ 
     gulp.src([ 
      '**/node_modules/**/.bin/', 
      '**/node_modules/**/*.md', 
      '**/node_modules/**/licen+(s|c)e*', 
      '**/node_modules/**/author*', 
      '**/node_modules/**/bower.json', 
      '**/node_modules/**/gruntfile.js', 
      '**/node_modules/**/makefile', 
      '**/node_modules/**/cakefile' 
     ], { 
      cwd: srcout, 
      nocase: true 
     }), 
     through.obj(function(f, e, cb) { 

      if (fs.statSync(f.path).isFile()) { 
       fs.unlinkSync(f.path); 
      } else { 
       rmdir.sync(f.path); 
      } 

      cb(null, f); 
     }) 
    ], 
    done); 

/.bin/*.mdグロブが正常に動作しているが、残りはやります何も見つかりません...

何が間違っているのですか?

は私がfs-extrawalkコールでグロブを交換したが、グロブが動作しない理由、それは本当に答えていません。あなたに

答えて

0

ありがとうございました

var fs = require('fs-extra'); 

gulp.task('cleanupapp', [ 'build' ], function(done) { 
    fs.walk(path.join(srcout, 'node_modules')) 
    .on('data', function (item) { 

     // normalize folder paths (win/mac) 
     var f = item.path.replace('/', '\\'); 

     if (f.match(/\\.bin\\/i) || 
      f.match(/\.md$/i) || 
      f.match(/licen[c|s]e/i) || 
      f.match(/author[s]?/i) || 
      f.match(/bower\.json$/i) || 
      f.match(/gruntfile\.js$/i) || 
      f.match(/makefile$/i) || 
      f.match(/cakefile$/i)) { 

      if (fs.accessSync(f, fs.W_OK)) { 
       fs.removeSync(f); 
      } 
     } 
    }) 
    .on('end', function() { 
     done(); 
    }); 
}); 
関連する問題