Advertisement
Guest User

Untitled

a guest
May 25th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. # Adcos Profissinal
  2.  
  3. Esse projeto é correspondente ao tema usado na loja da Adcos Profissional. A loja é VTEX e por isso devemos nos preocupar somente com o tema, o backend é fornecido pela VTEX numa plataforma SaaS.
  4.  
  5.  
  6. ## Tema
  7.  
  8. O arquivis fontes do projeto estão todos disponíveis na pasta `src`, divido entre `less`, `scripts` e `images`. Para gerar os arquivos para distribuição, aqueles que devem ser inseridos na plataforma VTEX, é necessário compilar os arquivos fontes. O Gulp é usado para fazer esse trabalho, através do arquivo `gulpfile.js`.
  9.  
  10. Somente um arquivo de CSS e um arquivo JavaScript serão gerados pelo Gulp e eles serão localizados na pasta `dist`. São os arquivos `app.css` e `app.js`. Além deste todas as imagens usadas serão copiadas também para a pasta `dist`. Esta pasta de arquivos distribuição seguirá a estrutura a seguir.
  11.  
  12. ```
  13. dist/
  14. |_ app.css
  15. |_ app.js
  16. |_ image1.png
  17. |_ image2.jpg
  18. |_ image3.jpeg
  19. |_ font_abc.ttf
  20. |_ font_123.ttf
  21. ```
  22.  
  23.  
  24. ### Ambiente de Desenvolvimento e Ambiente de Produção
  25.  
  26. O tema pode ser compilado de duas maneiras diferentes, uma para desenvolvimento e outra para produção. O que diferencia as duas são os arquivos que são gerados para distribuição. Quando a compilação é feita para produção é levando em consideração performance e o modo como a aplicação irá interagir com os recursos disponizados no projeto, como as APIs.
  27.  
  28. Para compilar os arquivos para Desenvolvimento você pode simplesmente executar diretamente do `gulpfile.js` ou executar o _scripts_ presente no _package.json_. Em ambos os casos, além da compilação também é ativada a tarefa _watch_, descrita a seguir.
  29.  
  30. ```sh
  31. # gulpfile.js
  32. gulp
  33.  
  34. # Package.json
  35. yarn dev
  36. ```
  37.  
  38. Para compilar os arquivos para Produção você precisar executar o seguinte _scripts_ presente no _package.json_.
  39.  
  40. ```sh
  41. # Package.json
  42. yarn build
  43. ```
  44.  
  45. **Importante**: Somente os arquivos gerados para Produção que devem ser carregados na plataforma da VTEX.
  46.  
  47.  
  48. ### Gulp
  49.  
  50. As seguintes tarefas estarão disponíveis no `gulpfile.js`:
  51.  
  52. 1. _styles_ -> Compila os arquivos `less` para um arquivo `css` e o coloca na pasta de distribuição;
  53. 1. _scripts_ -> Concatena todos os arquivos `js` num único arquivo, remove funções de _debug_ (somente em _production_), o enfeia/_uglify_ (somente em _production_) e o coloca na pasta de distribuição;
  54. 1. _images_ -> Minifica (somente em _production_) as imagens e as copia para a pasta de distribuição;
  55. 1. _fonts_ -> Copia todas as fontes usadas no projeto para a pasta de distribuição;
  56. 1. _defaul_ -> Executa todas as tarefas acima;
  57. 1. _watch_ -> Vigia alterações feitas na pasta de arquivos fonte e executa as tarefas correspondente ao arquivo quando ele é alterado.
  58.  
  59.  
  60. ## VTEX Speed
  61.  
  62. Para aplicar todas as coisas que foram feitas na loja é necessário carregar dos arquivos gerados na plataforma da VTEX. Como esse processo pode ser demorado por conta do cache, nós usamos uma ferramenta que agiliza o desenvolvimento: VTEX Speed.
  63.  
  64. Com o VTEX Speed é possível aplicar os arquivos de CSS, JS e imagens sem que seja necessário carregar na plataforma da VTEX.
  65.  
  66. Para isso é necessário instalá-lo no seu projeto.
  67.  
  68. ```sh
  69. # Se o projeto já existir como um submódulo precisamos fazer o download
  70. git submodule update --init --update
  71.  
  72. # Caso contrário, se ainda não existir um submódulo é necessário adicioná-lo
  73. git submodule add https://github.com/vtex/speed.git
  74. ```
  75.  
  76. Após isso é necessário fazer uma configuração. Adicione a seguinte opção no arquivo `package.json`:
  77.  
  78. ```json
  79. {
  80. "accountName": "adcosprofessional"
  81. }
  82. ```
  83.  
  84. > **Nota**: O nome da conta "adcosprofessional" está em inglês e, portanto, está escrito com a letra E, diferente do domínio da loja que usa a letra I.
  85.  
  86. Feito isso basta instalar as dependência e inicializar a aplicação:
  87.  
  88. ```sh
  89. # Instalar as dependências
  90. yarn
  91.  
  92. # Inicializar a aplicação
  93. sudo yarn start
  94. ```
  95.  
  96. Pronto, agora é só abrir o endereço `http://adcosprofessional.vtexlocal.com.br/` no navegador.
  97.  
  98. > **Importante**: o comando para inicializar a aplicação deve ser executada com super usuário.
  99.  
  100.  
  101. ### Integração com o tema
  102.  
  103. Para deixar o VTEX Speed integrado com o Gulp precisamos ter um link simbólico da pasta `build/arquivos` para a pasta `dist` do tema. Como o VTEX Speed estará dentro da pasta do tema precisamos fazer o seguinte.
  104.  
  105.  
  106. ```sh
  107. rm -rf build/arquivos
  108. ln
  109. ```
  110.  
  111. # @TODO
  112.  
  113. 1. Criar uma estrutura de pasta que facilite o entendimento do que é arquivo fonte e arquivo destino
  114. Usar pastas como `src` e `dist` ajudam bastante. Não necessariamente precisamos versionar a pasta dist, mas é aconselhável.
  115. 1. colocar o vtex speed como submodulo do projeto
  116. 1. remover arquivos que podem ser importados do npmjs
  117. 1. usar o NODE_ENV para variaveis de ambiente
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement