2015-07-28 258 views
3

以下exclude: '/node_modules/'僅會排除同一目錄中的node_modules文件夾,還是會排除嵌套的node_module文件夾?如果不是:我如何調整它以排除所有node_module文件夾?如何從webpack中的加載程序中排除嵌套的node_module文件夾

module: { 
    loaders: [ 
     { test: /\.ts$/, loader: 'ts-loader',exclude: '/node_modules/' } 
    ] 
}, 

Filestructure:

/general 
/node_modules 
/mod1 
    /src 
    /node_modules 
/mod2 
    /src 
    /node_modules 

回答

11

The documentation

的條件可以是正則表達式,含有絕對路徑,一個函數(ABSPATH)的字符串:布爾,或陣列其中之一與「和」相結合。

因此,基於此,您可以嘗試構建RegExp以適合您的情況。

我個人更喜歡使用include而不是exclude,因爲白名單比黑名單更容易維護。至少你有更強的控制力。

按照這樣的思路,你可以完全跳過exclude問題和建立這樣的規則:

include: [ 
    path.resolve(__dirname, 'general'), 
    path.resolve(__dirname, 'mod1/src'), 
    path.resolve(__dirname, 'mod2/src') 
] 

當然,如果你有更復雜的結構,也許你會最終做兩者的結合。一個規則excludenode_modules和一個規則include你想看的目錄。

+4

這是缺少文檔的示例。令人遺憾的是,DevDocs和官方文檔都沒有直接搜索「include」用法。感謝這個使用數組的例子。 –

1

如果您的問題僅限於TypeScript文件,您可以利用'ts-loader'在編譯時使用您的tsconfig.json文件。您可以定義您想排除的路徑。