2017-11-22 8 views
0

正規表現を使用して、$ log.debugをすべてコードベースから削除しようとしていますが、決して一致しないようです。私は(「これはメッセージである」)私の正規表現が正しいことを確認し、私はそれが

のように見えます

JSを一致させたい正確にどのようにマッチする...機能(){} $のlog.debug;機能()...このような何千ものステートメントのように、私はそれらをすべて取り除きたいです...私は喜びを持っていない次の2人のローダーを試しました。

私はそれをログや単なるテキストでマッチさせることができますが、正規表現を使用すると何も一致しないようです。ドキュメントは、私が使用している方法でそれをサポートしていると言います。

{ test: /\.js$/, 
     loader: 'string-replace-loader', 
     query: { 
      multiple: [ 
      { search: '\$log.debug.*;', replace: '', flags: 'g'} 
      ] 
     } 
     } 


{ test: /\.js$/, loader: WebpackStrip.loader('$log.debug', 'console.log') } 
+0

正規表現パターンで '.'をエスケープする必要はありませんか? ''\ $ log \ .debug。*;' ' – fubar

+0

これは正しいが、この場合は。私が思うどんなキャラクターにもマッチします。そこには偶然ですが、技術的には逃げなければなりません...と言われていますが、どちらの方法も実際にはローダーで動作しません。しかし、それは平凡なJSテストでうまく動作します... – chrislhardin

答えて

0

結局のところ、あなたはこれが理由JSで正規表現に渡されるStringオブジェクトの動作させるためのエスケープ文字をエスケープする必要があります...私はかなり正規表現での初心者ですので、私だけ2つのステートメントを使って、$ log.debugをすべて取得するかどうかを確認してください。ラインの終わりには、そうでないものがあるかもしれないので。

... 
    multiple: [ 
       { search: '\\$log.debug.*;', replace: '', flags: 'g'}, 
       { search: '\\$log.debug.*\\)', replace: '', flags: 'g'} 
... 
関連する問題