Vue Storefront: Zweiter Shell-Ansatz

Eine der Reden, die mich bei Meet Magento Baltics interessierten, war das Gespräch von Sander Mangel über Vue Storefront (VSF) mit Magento.


PWA ist ein vielversprechender Entwicklungsbereich in der Webentwicklung. Magento 2-Entwickler bieten ihre eigenen Tools zum Erstellen einer modernen, mobil ausgerichteten Webanwendung an, die den Magento-Traditionen entspricht, und Vue Storefront-Entwickler haben den Weg eingeschlagen, eine universelle Front zu erstellen, die über Adapter mit verschiedenen Backends interagieren kann (Magento, WooComerce, Odoo ,. ..). Vor ein paar Monaten habe ich Magentos PWA Studio ausprobiert und bin zu dem Schluss gekommen, dass die Lösung noch feucht ist. Die Demoversion von Vue Storefront hat mich sehr beeindruckt und ich wollte diese Lösung intensiver erleben.


Bild


Ich möchte den Leuten danken, die die Demo für den Einsatz vorbereitet haben - es reicht aus, die Bedingungen zu erfüllen (Knoten, Garn, Andockfenster vorinstalliert zu haben, ...), alle Optionen während des Installationsvorgangs standardmäßig auszuwählen, und Sie können ähnlich wie bei der Demoversion auf Ihrem eigenen PWA-Computer arbeiten. Aber ich brauche keine Demo mehr, ich muss Vue Storefront mit den Projekten verbinden, die ich bereits habe. Und hier beginnt der Hinterhalt.


Magento-Entwickler haben ein gutes Verständnis der Welt von PHP und in der Regel nicht sehr gut über die Welt von NodeJS. Dinge, die für die zweite Welt trivial sind, verursachen Stupor bei den Bewohnern der ersten Welt. Im Folgenden habe ich meinen zweiten Ansatz für die Bereitstellung von Vue Storefront beschrieben, um eine Verbindung zu meinem vorhandenen Projekt herzustellen. Ich muss sofort sagen, dass das Ergebnis meines zweiten Ansatzes eine Anwendung ist, die mit nichts verbunden ist, sondern zumindest in den Browser geladen wird. Es ist sehr wahrscheinlich, dass ich mehr als einen Ansatz ausführen muss, bis ich das gewünschte Ergebnis erhalte.


Zweck


Während ich mich mit Vue Storefront vertraut machte, wurden meine Ziele immer bescheidener, während ich mich für ein sehr bescheidenes Ziel entschied - das Projekt auf einem separaten Server zusammenzustellen und die Anwendung in den Browser zu laden.


Arbeitsumgebung


Für die Reinheit der Experimente verwende ich IaaS . Von den in der Tabelle aufgeführten Dienstleistern habe ich mich für Exoscale entschieden (mein Verweislink zur Registrierung). Die Mindesteinzahlung bei der Registrierung beträgt 5 EUR (+ 21% europäische Mehrwertsteuer), aber dieser Betrag reicht aus, um mehr als einmal zu spielen. Der Dienst kostet wirklich nur das, was Sie verwenden (Rechenleistung, Speicherplatz, Netzwerk).


Ich habe auf der kleinen Version von Linux Ubuntu 18.04 LTS 64-Bit (2x 2198 MHz CPU, 2 GB RAM, 10 GB Festplatte) gespielt.


Vorbereitung des Arbeitsumfelds:


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

Installieren Sie 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 

Garninstallation:


 # 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 

Installieren Sie VSF


Installieren Sie PM2 und vue-storefront / cli vor :


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

Wir verlassen root und erstellen die vue-storefront storefront vue-storefront Anwendung Version 1.10.4 im manuellen Modus:


 # 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 

Wechseln Sie in das Stammverzeichnis der Anwendung und erstellen Sie eine lokale Konfiguration:


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

Die Grundkonfiguration befindet sich in der Datei ./config/default.json . Es passt zu uns mit Ausnahme der Option server.host , d.h. Wir werden uns remote mit dem Server verbinden. Ich habe den Port ( server.port ) standardmäßig verlassen - 3000.


Anwendung erstellen


Hier musste ich experimentieren, am Ende kam ich zu folgender Befehlsfolge:


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

Anwendung starten und stoppen


 $ yarn start $ pm2 stop all 

Anwendungsverbindung


Anwendungsadresse: http : //xxx.xxx.xxx.xxxhaps000/ Als Ergebnis haben wir eine Fehlermeldung:


Bild


Fazit


Ja, das Ergebnis ist nicht sehr beeindruckend, aber ohne besondere magic . Redis, ElasticSearch, GraphQL - all dies ist in ./config/default.json konfiguriert und fehlt derzeit. Außerdem sollte es vue-storefront-api und ein Modul zum Replizieren von Daten zwischen vue-storefront-api und Magento 2 geben. Ich hoffe wirklich, dass ich mehr darüber schreiben werde.


Das ist alles für jetzt. Danke fürs Lesen.

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


All Articles