2016-07-04 12 views
4

私のアプリケーションに加えて、node_moduleの下で特定のパターンのモジュール、たとえばfoo。*にbabel-loaderを適用しようとしています。 node_modulesの下にある他のモジュールは通常どおりにスキップする必要があります。まず、私は動作しませんでした負の先読みを使用しようとしました: WebpackローダーのRegEx除外/インクルード設定が機能しない

{ 
    test: /\.js$/, 
    exclude: [ 
    /node_modules\/(?!foo).*/ 
    ], 
    loader: 'babel-loader', 
    query: { 
    ... 
    } 
}, 

は、その後、私は2つのローダにsplitedし、いずれかの動作しませんでした:私は正規表現の代わりに文字列を使用している場合、しかし、

{ 
    test: /\.js$/, 
    exclude: [ 
    path.resolve(_path, "node_modules") 
    ], 
    loader: 'babel-loader', 
    query: { 
    ... 
    } 
}, 
{ 
    test: /\.js$/, 
    include: [ 
    /node_modules\/foo.*/ 
    ], 
    loader: 'babel-loader', 
    query: { 
    ... 
    } 
} 

を、それは一つのフォルダのために働く:

include: [ 
    path.resolve(_path, "node_modules/foo") 
], 

これは期待通りに正規表現が機能していない私に示します。

Include/ExcludeフィールドでRegExを使用している人はいますか?

答えて

4

これは、私が使用しているWindowsのパス区切りの問題です。以下の否定的な先読み構文が機能し、OSに依存しません:

new RegExp('node_modules\\'+path.sep+'(?!foo).*') 
関連する問題