如何从webpack中的加载器中排除嵌套的node_module文件夹

时间:2015-07-28 11:30:27

标签: filepath webpack

以下exclude: '/node_modules/'是否仅排除同一目录中的node_modules文件夹,还是会排除嵌套的node_module文件夹?如果不是:如何调整它以排除所有node_module文件夹?

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

Filestructure:

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

2 个答案:

答案 0 :(得分:12)

The documentation

  

条件可以是RegExp,包含绝对路径的字符串,函数(absPath):bool,或其中一个与“和”结合的数组。

因此,您可以尝试构建一个适合您案例的RegExp。

我个人更喜欢使用Sub M1FourDigitRow() ' ' M1FourDigitRow Macro ' ' Keyboard Shortcut: Ctrl+Shift+Q ' Dim Range1 As Range Dim Cell1 As Range Set Range1 = ThisWorkbook.Sheets("Sheet9").Range(ThisWorkbook.Sheets("Sheet9").Cells(3, "AS"), ThisWorkbook.Sheets("Sheet9").Cells(1000, "AS")) For Each Cell1 In Range1 Cell1.Value = Cell1.Row - 2 Cell1.NumberFormat = "0000" Next Cell1 End Sub 而不是include,因为白名单比黑名单更容易维护。至少你有更强的控制力。

按照这种思路,你可以完全跳过exclude个问题并建立一个这样的规则:

exclude

当然,如果你有更复杂的结构,你最终可能会两者兼而有之。 include: [ path.resolve(__dirname, 'general'), path.resolve(__dirname, 'mod1/src'), path.resolve(__dirname, 'mod2/src') ] node_modules 的一条规则和exclude要查看的目录的一条规则。

答案 1 :(得分:1)

如果您的问题仅适用于TypeScript文件,则可以利用'ts-loader'在编译时使用tsconfig.json文件的事实。您可以在那里定义要排除的路径。