Vue Storefront: Segunda abordagem da Shell

Um dos discursos que me interessaram no Meet Magento Baltics foi a palestra de Sander Mangel sobre o Vue Storefront (VSF) com o Magento.


PWA é uma área promissora de desenvolvimento em desenvolvimento web. Os desenvolvedores do Magento 2 oferecem seu próprio conjunto de ferramentas para criar um aplicativo Web moderno, orientado para dispositivos móveis, em conformidade com as tradições do Magento, e os desenvolvedores do Vue Storefront adotaram o caminho da criação de um front universal que pode interagir com vários back-end por meio de adaptadores (Magento, WooComerce, Odoo ,. ..) Alguns meses atrás, tentei o PWA Studio do Magento e cheguei à conclusão de que a solução ainda está úmida. A versão demo do Vue Storefront causou uma ótima impressão em mim e eu queria sentir essa solução mais intimamente.


imagem


Presto homenagem aos caras que prepararam a demo para implantação - é suficiente para atender às condições (tem nodejs pré-instalados, fios, docker, ...), seleciona todas as opções por padrão durante o processo de instalação e você pode montar sua própria máquina PWA semelhante à versão demo. Mas não preciso ter mais uma demonstração, preciso conectar o Vue Storefront aos projetos que já tenho. E aqui começa a emboscada.


Os desenvolvedores do Magento têm uma boa compreensão do mundo do PHP e, como regra, não são muito bons sobre o mundo dos nodejs. Coisas triviais para o segundo mundo causam estupor entre os habitantes do primeiro mundo. Abaixo, descrevi minha segunda abordagem para implantar o Vue Storefront na tentativa de conectá-lo ao meu projeto existente. Devo dizer imediatamente que o resultado da segunda abordagem que tenho é um aplicativo que não está conectado a nada, mas pelo menos carregando no navegador. É muito provável que eu tenha que fazer mais de uma abordagem até obter o resultado desejado.


Finalidade


No processo de me familiarizar com o Vue Storefront, meus objetivos se tornaram mais modestos e mais modestos, enquanto eu decidi por um modesto - montar o projeto em um servidor separado e carregar o aplicativo no navegador.


Ambiente de trabalho


Para a pureza dos experimentos, uso IaaS . Dos prestadores de serviços listados na tabela, optei pelo Exoscale (meu link de referência para registro). O depósito mínimo no momento da inscrição é de 5 EUR (+ 21% de IVA na Europa), mas esse valor é suficiente para jogar mais de uma vez. O serviço realmente leva dinheiro apenas para o que você usa (poder de computação, espaço em disco, rede).


Joguei na versão pequena do Linux Ubuntu 18.04 LTS de 64 bits (CPU 2x 2198 MHz, 2 GB RAM, disco de 10 GB).


Preparação do ambiente de trabalho:


$ sudo -i # apt update # apt upgrade -y 

Instale o nodejs & npm:


 # curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - # apt-get install -y nodejs # node --version && npm --version v12.13.0 6.12.0 

Instalação de fios:


 # curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - # echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list # apt-get update && sudo apt-get install yarn # yarn --version 1.19.1 

Instale o VSF


Pré- instale o PM2 e o vue-storefront / cli :


 # npm install pm2@latest -g # pm2 --version 4.1.2 # npm install @vue-storefront/cli@latest -g 

Encerramos o root e criamos o aplicativo vue-storefront versão 1.10.4 no modo manual:


 # exit $ cd ~ $ vsf init Check avalilable versions ? Which version of Vue Storefront you'd like to install? Stable versions (recommended for production) ? Select specific version v1.10.4 ? Would you like to use friendly installer or install Vue Storefront manually? Manual installation Copying Vue Storefront files 

Vá para o diretório raiz do aplicativo e crie uma configuração local:


 $ cd vue-storefront/ $ cat > ./config/local.json { "server": { "host": "0.0.0.0" } } 

A configuração básica está no arquivo ./config/default.json . Ele nos convém, com exceção da opção server.host , ou seja, nós estamos indo para conectar ao servidor remotamente. Deixei a porta ( server.port ) por padrão - 3000.


Criar aplicativo


Aqui eu tive que experimentar, no final, cheguei à seguinte sequência de comandos:


 $ npm install $ yarn install $ yarn build $ yarn upgrade #    ,         

Iniciando e Parando o Aplicativo


 $ yarn start $ pm2 stop all 

Conexão de aplicativo


Endereço do aplicativo: http : //xxx.xxx.xxx.xxxhaps000/ Como resultado, temos uma mensagem de erro:


imagem


Conclusão


Sim, o resultado não é muito impressionante, mas ocorreu sem magic especial. Redis, ElasticSearch, GraphQL - tudo isso está configurado em ./config/default.json e está ausente no momento. E também deve haver o vue-storefront-api e um módulo para replicar dados entre o vue-storefront-api e o Magento 2. Espero realmente escrever mais sobre eles.


Por enquanto é tudo. Obrigado pela leitura.

Source: https://habr.com/ru/post/pt475940/


All Articles