Roadmap
Avançado

Ecommerce em 2024

O jeito mais moderno de criar um ecommerce

tailwind
vercel
github
medusajs
render
nuxt

Adaptando o projeto medusajs para ser publicado na Vercel

Antes de começarmos vamos precisar fazer algumas atualizações no projeto para ser compatível com a Vercel. Para isso, vamos abrir o arquivo medusa-server/package.json e atualizar/adicionar as seguintes linhas:

package.json
...
"scripts": {
  "clean": "cross-env ./node_modules/.bin/rimraf dist",
  "build": "cross-env npm run clean && npm run build:server && npm run build:admin",
  "build:server": "cross-env npm run clean && tsc -p tsconfig.server.json",
  "build:admin": "medusa-admin build --deployment",
  "watch": "cross-env tsc --watch",
  "test": "cross-env jest",
  "seed": "cross-env medusa seed -f ./data/seed.json",
  "start": "cross-env npm run build && medusa start",
  "start:custom": "cross-env npm run build && node --preserve-symlinks --trace-warnings index.js",
  "dev": "cross-env npm run build:server && medusa develop",
  "dev:admin": "medusa-admin develop --backend {server_url}"
},
...
Clique aqui para expandir

Lembre-se de substituir o {server_url} do último comando pelo valor salvo no arquivo credenciais.txt.

Agora nós vamos criar um arquivo chamado vercel.json dentro da pasta medusa-sever e adicionar o seguinte código:

{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}
Clique aqui para expandir

Pronto, agora só enviar pro GitHub rodando os seguintes comandos em sequência:

git add .
git commit -m "adaptando pra vercel"
git push
Clique aqui para expandir

Como subir o painel de administrator do medusajs na Vercel

Entre na sua conta da Vercel, vá no seu dashboard e clique em "Add New...":

Adicionando um novo projeto na Vercel

Agora selecione o projeto medusa-server e clique em Import:

Importanto o projeto medusajs para a Vercel

Em "Framework Preset" selecione "Other", em "Build and Output Settings" clique em "Override" nos três itens e cole o seguinte em cada um:

> Build Command: npm run build:admin
> Output Directory: build
> Install Command: npm i
Clique aqui para expandir

Suas configurações devem ficar assim:

Configurando os comandos de build da vercel

Agora expanda a aba de "Environment Variables" e crie as seguintes variáveis de ambiente:

> MEDUSA_BACKEND_URL: {server_url}
> STORE_CORS: http://localhost:8000,http://localhost:7001,SUBSTITUIR_DEPOIS
> ADMIN_CORS: SUBSTITUIR_DEPOIS
> MEDUSA_ADMIN_BACKEND_URL: {server_url}
> DATABASE_TYPE: postgres
> DATABASE_URL: {internal_database_url}
> MEDUSA_ADMIN_ONBOARDING_TYPE: default
Clique aqui para expandir

Lembre-se de substituir o {server_url} e o {internal_database_url} pelos valores do arquivo credenciais.txt.

Importante: Ao substituir o {server_url} pela url em si, você deverá apagar a barra / no final, se você não fizer isso não vai funcionar.

Então suas variáveis de ambiente deverão ficar mais ou menos assim:

Variáveis de ambiente do medusajs na vercel

Agora só clicar em Deploy e aguardar por uns 5 minutos.

Depois que o deploy terminar nós vamos clicar em "Continue to Dashboard" e copiar o valor de baixo de "Domains":

Copiando o valor de domains dentro da Vercel

Então vamos adicionar https:// na frente do domínio e salvar esse valor no arquivo credenciais.txt como admin_url:

credenciais.txt
> internal_database_url: COLE_AQUI_A_INTERNAL_DATABASE_URL
> internal_redis_url: COLE_AQUI_A_INTERNAL_REDIS_URL
> server_url: COLE_AQUI_O_SERVER_URL
> admin_url: https://COLE_AQUI_O_ADMIN_URL
Clique aqui para expandir

Lembre-se: o projeto ainda não vai funcionar devido à problemas de CORS, mas vamos corrigir isso atualizando algumas variáveis de ambiente dentro da vercel e do render na próxima aula.

Opa, calma aí!

Parece que você não está logado, caso tenha interesse em salvar seu progresso de estudo faça login agora.