standardnotes-app/packages/mobile/metro.config.js
2022-07-06 14:04:30 +02:00

56 lines
1.3 KiB
JavaScript

/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* And for svg files usage
* https://stackoverflow.com/a/65231261/2504429
* @format
*/
const path = require('path')
const { getDefaultConfig } = require('metro-config')
const extraNodeModules = {
common: path.resolve(__dirname + '../..'),
}
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig()
return {
watchFolders: [
__dirname,
'../icons',
'../styles',
'../components',
'../features',
'../encryption',
'../filepicker',
'../services',
'../files',
'../utils',
'../sncrypto-common',
'../snjs',
],
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
extraNodeModules: new Proxy(extraNodeModules, {
get: (target, name) => {
const result = name in target ? target[name] : path.join(process.cwd(), `node_modules/${name}`)
return result
},
}),
},
}
})()