2016-07-04 114 views
4

我想將babel-loader應用於特定的模塊模式,除了我的應用之外,還有在foo。*下的node_modules。像往常一樣,node_modules下的其他模塊應該被跳過。首先,我試圖用消極前瞻沒有工作:RegEx在Webpack loader exclude/include config不起作用

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

然後我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") 
], 

這表明正則表達式沒有按預期工作。

是否有人在包含/排除字段中使用RegEx工作?

回答

4

事實證明,這是我在使用的Windows中的路徑分隔符問題。以下負面超前語法的作品是OS不可知的:

new RegExp('node_modules\\'+path.sep+'(?!foo).*')