pré-requisitos:
Windows 11/10
, Direitos de administrador no WSL2
, dotenv
O Expo
é uma ferramenta open source
para facilitar a sua vida na hora de criar aplicativos em React Native
. É possível usa-lo em qualquer sistema operacional que você quiser: Windows
, Linux
e MacOs
mas e se eu quiser usa-lo no meu WSL (Windows Subsystem of Linux)
? Bem... até a data de criação desse artigo isso seria uma tarefa que beiraria o impossível, mas nós da Devhat nos juntamos para te ajudar nessa missão!
observação
Esse artigo será separado em duas partes: a primeira parte ensinará a configurar e conectar o Expo
ao seu celular pelo QR code
, a segunda parte ensinará a conectar o Expo
a um Virtual Device
.
1: ABRIR AS PORTAS DE IP DO SEU COMPUTADOR
- Dentro deste GIST tem um arquivo
Powershell
, você precisará baixar ou copiar esse arquivo (garanta que é um arquivo.ps1
e não um arquivo.txt
) .- Caso você precise trocar a porta, edite a variável na 6ª linha, entre parênteses.
$ports = @(8081, 8082);
- Pegue esse arquivo e jogue ele na Root da pasta C
C:\
.
- Agora abra o
PowerShell
como administrador (precisa ser como administrador).
- Agora com o seu
PowerShell
comoadministrador
aberto, você irá fazer algumas coisas:- feche todas as abas do
WSL
abertas no seu computador e execute o seguinte comando.
- feche todas as abas do
wsl --shutdown
- essa mensagem de erro aparecerá caso você pule essa etapa.
- Execute o seguinte comando.
powershell.exe -ExecutionPolicy Bypass -f C:\forward_wsl2_ports.ps1
- se tudo der certo, esse será o resultado no seu
terminal
.
Se tudo deu certo até aqui significa que você conseguiu configurar o WSL
para rodar o Expo
! Agora precisamos configurar o Expo
para rodar o WSL
.
2. CRIANDO E CONFIGURANDO UM PROJETO EXPO
- Abra o seu terminal com
WSL
e rode o seguinte comando para criar um projetoExpo
.
npx create-expo-app
- Após criar o projeto você irá criar um script node chamado
get_network_local_ip.js
na Root do seu projeto. - Dentro desse arquivo,
- Nesse
script
nós usamos duasvariáveis de ambiente
chamadas:LOCAL_CONNECTION_INTERFACE_NAME
eLOCAL_CONNECTION_IPV4_SEARCH
. - Nós precisamos dessas duas
envs
para poder rodar o projeto no WSL, vamos aprender a achar os valores necessários pras essasenvs
, para isso vamos rodar o seguinte comando
netsh.exe interface ip show address
- Procure pela
Ethernet
que tenha oDHCP habilitado
como sim, no meu caso é apenasEthernet
, mas no seu caso pode serEthernet 1
ouEthernet 2
ouWiFi
, etc.
- Dessas informações nós queremos o
Ethernet
e oendereço IP
pro nossoscript
e esses serão os valores das nossasenvs
! - Agora vamos criar o arquivo de
envs
e preenche-las para o nosso script - Na Root do seu projeto crie um arquivo chamado
.env.local
e coloque as seguintesenvs
lá:
LOCAL_CONNECTION_INTERFACE_NAME="Ethernet"
LOCAL_CONNECTION_IPV4_SEARCH="Endere"
OBSERVAÇÕES IMPORTANTES!!!!!
- Por que a segunda
env
LOCAL_CONNECTION_IPV4_SEARCH
tem como valorEndere
e nãoEndereço IP
?- Alguns terminais podem ter um erro de
utf-8
e podem não reconhecer a letraç
, nesse caso ele não vai achar o valor correto na hora de executar o script e irá darerro
! Por isso colocaremos apenasEndere
naenv
- Alguns terminais podem ter um erro de
- Se a linguagem do seu sistema estiver em inglês, o
windows
retornará o IP emIP Adress
em vez deEndereço IP
, caso essa seja a sua situação, troque no.env.local
Endere
porIP Adress
senão, você não conseguirá rodar o projeto.
3. COMANDO PARA RODAR O EXPO NO WSL
- Após essas configurações nós precisaremos apenas criar o comando no
package.json
para rodar o projeto. Faremos da seguinte forma:- Abriremos o arquivo
package.json
do nosso projeto - Colocaremos o seguinte comando na parte de
script
- Abriremos o arquivo
"start:wsl": "REACT_NATIVE_PACKAGER_HOSTNAME=$(node get_network_local_ip.js) expo start",
- Ficando dessa forma
- Agora rode o comando que acabamos de criar no terminal com
npm run start:wsl
- Se tudo der certo, ele irá mostrar um
QR code
na tela, baixe o aplicativoExpo GO
e escaneie esseQR code
e pronto, você tá rodando o Expo peloWSL
!
Caso você goste dessa opção de rodar o seu projeto no seu celular você pode parar por aqui, mas caso você queira rodar o seu projeto no seu computador e o melhor de tudo, SEM PRECISAR DE ANDROID STUDIO PARA ISSO, acesse a parte 2 desse artigo e entenda como.
Caso esse artigo tenha sido útil para você, de uma olhada na nossa comunidade, a devhat. É aqui, que encontramos apoio, compartilhamos ideias e nos inspiramos mutuamente. A comunidade DevHatt não é apenas um conjunto de desenvolvedores, mas uma família unida pela paixão pela tecnologia e inovação.
Se você ainda não faz parte desta comunidade, convidamos você a se juntar a nós no Discord DevHatt.
Top comments (1)
Caramba, muito bom! Procurei tanto algo deste tipo e sem sucesso! Muito obrigado!