-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetro.config.js
40 lines (35 loc) · 1.18 KB
/
metro.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
/**
* Metro configuration
* https://reactnative.dev/docs/metro
*
* @type {import('metro-config').MetroConfig}
*/
const defaultConfig = getDefaultConfig(__dirname);
const config = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
babelTransformerPath: require.resolve('react-native-svg-transformer'),
minifierPath: require.resolve('metro-minify-terser'), // Use Terser for minification
minifierConfig: {
keep_classnames: false, // Option to control class name preservation
keep_fnames: false, // Option to control function name preservation
mangle: {
toplevel: true, // Enable variable name mangling at the top level
},
output: {
comments: false, // Remove all comments
},
},
},
resolver: {
assetExts: [...defaultConfig.resolver.assetExts.filter((ext) => ext !== 'svg'), 'lottie'],
sourceExts: [...defaultConfig.resolver.sourceExts, 'svg', 'cjs'],
},
};
module.exports = mergeConfig(getDefaultConfig(__dirname), config);