Estoy usando expo-cli.
Importo un módulo de la carpeta 'src' (creé esta carpeta), si se abre en la web, funciona perfectamente, pero si se abre en Android, no se encuentra .
Intento usar la ruta absoluta, el módulo Babel Resolver y nada funciona.
Proyecto:
-assets -node_modules -src -components -screens -HomeScreen.js -services -Webservices.js -styles -utils -App.js ...Archivo de pantalla:
... import WebServices from '../services/WebServices'; export default class HomeScreen extends React.Component { ...Archivo a importar:
const axios = require('axios'); var url = 'https://randomuser.me/api/'; var WebServices = { getUser: function(){ return axios.get(url); } } export { WebServices as default };Error:
Android Bundling failed 5347ms Unable to resolve module ../services/WebServices.js from C:\Users\jalvarez\Proyectos\AppPruebas\src\screens\HomeScreen.js: None of these files exist: * src\services\WebServices.js(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json) * src\services\WebServices.js\index(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json) 5 | import { createNativeStackNavigator } from '@react-navigation/native-stack'; 6 | > 7 | import WebServices from '../services/WebServices.js'; | ^ 8 | 9 | export default class HomeScreen extends React.Component {Instalar los módulos Typescript y babel-plugin-root-import y con esta configuración en babel.config.js y tsconfig.json me funciona en Android y en la web.
balbel.config.js:
module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], plugins: [ [ 'babel-plugin-root-import', { root: __dirname, rootPathPrefix: '~', rootPathSuffix: './src', }, ] ] }; };En tsconfig.json agregue:
"rootDir": "./"Para importar:
import WebServices from '~/services/webservices';