DEV Community

Cover image for Caminhos absolutos para imports no Expo, como fazer?
Evandro Ribeiro
Evandro Ribeiro

Posted on

5 2

Caminhos absolutos para imports no Expo, como fazer?

Se você assim como eu usa a pasta src como root da aplicação, sabe que é bem chato importar componentes usando ../../ para isso, fora quando você resolve mover um componente que hora foi criado local, mas por conta de ser reutilizado em outros lugares, decidiu mover ele para uma pasta global, ao fazer isso, o import era quebrar.
A motivação para escrever esse post, veio porque resolvi esse "problema", com algumas configurações no babel.config.js que vem por padrão em qualquer projeto Expo, abaixo descrevo os passos necessários para que você possa configurar o seu projeto, e poder usar poder usar ~/ e ao fazer isso, ele listar as pastas/arquivos na pasta src definindo ela como root no projeto.

Vamos começar instalando o babel-plugin-root-import como uma dependência de desenvolvimento no projeto, abaixo um exemplo de como fazer isso!

yarn add -D babel-plugin-root-import

ou

npm install babel-plugin-root-import --sav-dev
Enter fullscreen mode Exit fullscreen mode

Uma vez instalada a dependência, espero que tenha usado o yarn para isso, vamos alterar o babel.config.js, por padrão ele vem assim:

module.exports = function(api) {
  api.cache(false);
  return {
    presets: ['babel-preset-expo'],
  };
};
Enter fullscreen mode Exit fullscreen mode

Mas iremos altera-lo e deixar dessa forma aqui:

module.exports = function(api) {
  api.cache(false);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      [
        'babel-plugin-root-import',
        {
          rootPathSuffix: 'src',
        },
      ],
    ],
  };
};

Enter fullscreen mode Exit fullscreen mode

Com isso, incluímos o babel-plugin-root-import e definimos a pasta src, como sendo nosso rootPath. Boa parte já está feita, e para finalizar precisamos configurar o VSCode, para que ele entenda a configuração e passe a usar a pasta src de fato como sendo a raiz do projeto, e para isso, iremos criar na raiz do projeto um arquivo com o nome de jsconfig.json e incluir a configuração que mostro abaixo:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "~/*": ["src/*"]
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

E com isso finalizamos todas as configurações necessárias, algo que é relativamente simples, eu concordo.

Se você seguiu todos os passos e não teve nenhum problema, ao importar um componente agora, bastará usar ~/ e o VSCode irá listar todas as pastas e arquivos dentro da src, na imagem abaixo um exemplo:

Exemplo do resultado no VSCode ao importar um componente

Considerações finais

Esse é o meu primeiro post, já peço desculpas por algo estranho nele, mas mesmo sendo algo bem simples, achei legal compartilhar e mais importante, pela primeira vez, senti a vontade e confiança para escrever.

Image of Stellar post

How a Hackathon Win Led to My Startup Getting Funded

In this episode, you'll see:

  • The hackathon wins that sparked the journey.
  • The moment José and Joseph decided to go all-in.
  • Building a working prototype on Stellar.
  • Using the PassKeys feature of Soroban.
  • Getting funded via the Stellar Community Fund.

Watch the video

Top comments (0)

Jetbrains Survey

Calling all developers!

Participate in the Developer Ecosystem Survey 2025 and get the chance to win a MacBook Pro, an iPhone 16, or other exciting prizes. Contribute to our research on the development landscape.

Take the survey

👋 Kindness is contagious

DEV is better (more customized, reading settings like dark mode etc) when you're signed in!

Okay