Hello,
I’ve setup a basic Expo project with TypeScript and wanted to use absolute imports inside my src
folder.
This would allow me to import Home
directly rather than src/Home
.
Normally, with TypeScript, I’d only have to change the baseUrl
option in the tsconfig.json
file, but it seems that Expo/Babel doesn’t take that into account. So I opened my babel config file (babel.config.ts
) and tried adding a root
property like so
module.exports = (api: any) => {
api.cache(true);
return {
plugins: [
[
'babel-plugin-module-resolver',
{
root: './src',
},
],
],
presets: ['babel-preset-expo'],
};
};
But Expo/Babel still fails to resolve my imports. I’ve seen a couple of posts (1, 2) with people that had a similar issue but it seems that they all had to resort to using the alias
option which isn’t optimal. I tried using alias
and that did not work for me.
For now, I’ve resorted to creating a package.json
file in the “src” folder and added {"name": "src"}
so that the module src
resolves to that folder. But TypeScript also needed an alias of its own in the paths
section of the tsconfig.json
. This is a really hackish way to do it
So I guess my question is, is there a way to “fix” this issue and allow for absolute imports/path? (And ideally, make it work cleanly with TypeScript’s imports?)
Thank you