|
1 | 1 | const path = require('path'); |
2 | | -const tabView = require('../../packages/react-native-bottom-tabs/package.json'); |
3 | | -const reactNavigationIntegration = require('../../packages/react-navigation/package.json'); |
| 2 | +const fs = require('fs'); |
4 | 3 |
|
5 | | -module.exports = { |
6 | | - presets: ['babel-preset-expo'], |
7 | | - plugins: [ |
8 | | - [ |
9 | | - 'module-resolver', |
| 4 | +const packages = path.resolve(__dirname, '..', '..', 'packages'); |
| 5 | + |
| 6 | +/** @type {import('@babel/core').TransformOptions} */ |
| 7 | +module.exports = function (api) { |
| 8 | + api.cache(true); |
| 9 | + |
| 10 | + const alias = Object.fromEntries( |
| 11 | + fs |
| 12 | + .readdirSync(packages) |
| 13 | + .filter((name) => !name.startsWith('.')) |
| 14 | + .map((name) => { |
| 15 | + const pak = require(`../../packages/${name}/package.json`); |
| 16 | + |
| 17 | + if (pak.source == null) { |
| 18 | + return null; |
| 19 | + } |
| 20 | + |
| 21 | + return [pak.name, path.resolve(packages, name, pak.source)]; |
| 22 | + }) |
| 23 | + .filter(Boolean) |
| 24 | + ); |
| 25 | + |
| 26 | + return { |
| 27 | + presets: ['babel-preset-expo'], |
| 28 | + overrides: [ |
10 | 29 | { |
11 | | - extensions: ['.tsx', '.ts', '.js', '.json'], |
12 | | - alias: { |
13 | | - 'react-native-bottom-tabs': path.join( |
14 | | - __dirname, |
15 | | - '../../packages/react-native-bottom-tabs', |
16 | | - tabView.source |
17 | | - ), |
18 | | - '@bottom-tabs/react-navigation': path.join( |
19 | | - __dirname, |
20 | | - '../../packages/react-navigation', |
21 | | - reactNavigationIntegration.source |
22 | | - ), |
23 | | - }, |
| 30 | + exclude: /\/node_modules\//, |
| 31 | + plugins: [ |
| 32 | + [ |
| 33 | + 'module-resolver', |
| 34 | + { |
| 35 | + extensions: ['.tsx', '.ts', '.js', '.json'], |
| 36 | + alias, |
| 37 | + }, |
| 38 | + ], |
| 39 | + ], |
24 | 40 | }, |
25 | 41 | ], |
26 | | - ], |
| 42 | + }; |
27 | 43 | }; |
0 commit comments