Conhecendo uma app VTEX IO

Conhecendo uma app no VTEX IO

De forma a implementar uma aplicação totalmente customizada no VTEX IO, é necessário entender alguns conceitos que serão apresentados e tudo começa com um arquivo muito importante de uma app: o manifest.json.

O arquivo manifest.json

Este arquivo define algumas configurações básicas e abstrações que são necessárias para que o build da sua aplicação funcione. Nesta etapa, alguns campos deste arquivo serão explicados, que são:

  • vendor
  • name
  • version
  • dependencies

Vamos começar!

vendor

Define o nome da conta VTEX que está desenvolvendo a app. Esta conta é responsável por sua manutenção e distribuição (a aplicação pode ser instalada em outras contas ou apenas na própria).

O vendor vtex é utilizado para apps nativas.

name

Identifica o nome da aplicação. Não deve conter nenhum caractere especial (exceto por -, que é permitido) ou caracteres maiúsculos.

version

Identifica a versão atual da app. Utilizamos a especificação de Versionamento Semântico 2.0.0. O formato é bem definido, dividido em releases de patch, minor ou major.

Você pode encontrar abaixo um resumo da especificação:

  • Patches: É utilizado para bug fixes que são retrocompatíveis;
  • Minors: Deve ser utilizado para features retrocompatíveis;
  • Majors: Utilizado quando mudanças incompatíveis de API são feitas (breaking changes).

Por exemplo: se uma API está na versão 2.3.2 e uma feature que não é breaking change é adicionada, então a versão pode ser atualizada para 2.4.0.

No momento em que o deployment é feito, há um worker que chamamos de housekeeper, cuja responsabilidade é atualizar automaticamente as aplicações para a nova versão em cada conta VTEX. Dessa forma, irá sempre instalar todas as atualizações que são minor ou patch, dada a retrocompatibilidade. Porém, não irá atualizar automaticamente versões major, dado que podem vir também com mudanças de dependências.

dependencies

Uma app pode depender de outras aplicações. Este campo lista todas as dependências necessárias para o correto funcionamento da aplicação.

Exemplo

Neste exemplo de um arquivo manifest.json, é possível observar algumas das características mencionadas anteriormente. Em particular, a versão da app é 0.0.1 e estes números correspondem, respectivamente, a major, minor e patch.

{
  "vendor": "vtex",
  "name": "countdown",
  "version": "0.0.1",
  "title": "Countdown",
  "description": "Countdown component",
  "defaultLocale": "pt-BR",
  "builders": {
    "messages": "1.x",
    "store": "0.x",
    "react": "3.x"
  },
  "mustUpdateAt": "2019-04-02",
  "scripts": {
    "postreleasy": "vtex publish --verbose"
  },
  "dependencies": {
    "vtex.styleguide": "9.x",
    "vtex.css-handles": "0.x"
  },
  "$schema": "https://raw.githubusercontent.com/vtex/node-vtex-a pi/master/gen/manifest.schema"
}

Ajude-nos a fazer este conteúdo melhor!

Os cursos do VTEX IO são de código aberto. Se você perceber algum problema, pode abrir um pull request!

Faça uma contribuição

ou abra uma issue