1 | const path = require('path')
|
2 |
|
3 | module.exports = (config, { babel, transformModules }) => {
|
4 |
|
5 | if (typeof transformModules === 'string') {
|
6 | transformModules = [transformModules]
|
7 | }
|
8 |
|
9 | config.module
|
10 | .rule('js')
|
11 | .test(/\.jsx?$/)
|
12 | .include
|
13 | .add(filepath => {
|
14 |
|
15 | if (filepath.indexOf(`${path.sep}node_modules${path.sep}`) === -1) {
|
16 | return true
|
17 | }
|
18 |
|
19 | if (Array.isArray(transformModules)) {
|
20 | const hasModuleToTransform = transformModules.some(name => {
|
21 | return filepath.indexOf(`${path.sep}node_modules${path.sep}${name}${path.sep}`) >= 0
|
22 | })
|
23 | if (hasModuleToTransform) {
|
24 | return true
|
25 | }
|
26 | }
|
27 | return false
|
28 | })
|
29 | .end()
|
30 | .use('babel-loader')
|
31 | .loader('babel-loader')
|
32 | .options(babel)
|
33 |
|
34 | config.module
|
35 | .rule('es')
|
36 | .test(/\.es6?$/)
|
37 | .use('babel-loader')
|
38 | .loader('babel-loader')
|
39 | .options(babel)
|
40 | }
|