Magento 2: Wie kann ich nur mein Theme bereitstellen?

33

Ich habe dies für die Bereitstellung des Inhalts verwendet, aber es dauert zu lange.

php bin/magento setup:static-content:deploy 

dann finde ich heraus, wie man die sprache schnell macht aber trotzdem alle themen bereitstellt.

php bin/magento setup:static-content:deploy  en_US

Wie kann ich deploynur meinen Themeninhalt anzeigen?

Qaisar Satti
quelle
Zu Ihrer Information gibt es eine PR , die diese und viele weitere Möglichkeiten bietet. Ich denke, es wird wahrscheinlich mit v2.2 herauskommen.
thdoan
Eine andere mögliche Lösung, aber für den Produktionsmodus magento.stackexchange.com/questions/126270/…
Ich benutze magento 2.0.4 und benutze dieses <code> php -dmemory_limit = 8G bin / magento-Setup: static-content: deploy --theme Rws / fonddecave en_US de_DE fr_FR </ code> Aber es kommt ein Fehler --theme Option existiert nicht. Was ist mein Fehler, kann mir jemand dabei helfen?
Raghwendra Ojha
Wenn Sie eine neue Frage haben, fragen Sie es bitte durch Klicken Frage stellen Taste. Fügen Sie einen Link zu dieser Frage hinzu, wenn dies zur Bereitstellung des Kontexts beiträgt. - Aus Bewertung
Shoaib Munir
1
@ DarrenFelton fertig.
Qaisar Satti

Antworten:

56

Ab 2.1.1 können Sie jetzt bestimmte Themen bereitstellen oder Themen ausschließen:

Stellen Sie bestimmte Themen bereit:

php bin/magento setup:static-content:deploy --theme Magento/backend --theme Vendor/mytheme

Themen ausschließen:

php bin/magento setup:static-content:deploy --exclude-theme Magento/luma

Bildbeschreibung hier eingeben

Aktualisieren Sie diese Optionen jetzt in der Dokumentation .

Mathew Tinsley
quelle
es hat bei mir nicht funktioniert und es wurde in devdocs.magento.com/guides/v2.1/config-guide/cli/… nicht erwähnt. Da haben wir nur 2 Möglichkeiten.
Adeel Ishfaq
@AdeelIshfaq Wie so viele andere Dinge ist es noch nicht dokumentiert, aber es funktioniert in 2.1.1. Ich habe einen Screenshot angehängt.
Mathew Tinsley
Senden Sie eine Pull-Anfrage, um die neuen Optionen in die Dokumentation aufzunehmen: github.com/magento/devdocs/pull/827
Mathew Tinsley
@MathewTinsley, ist es möglich, ein bestimmtes Frontend-Thema in allen Sprachen und ein bestimmtes Backend-Thema nur in einer Sprache bereitzustellen? Ich brauche mein Backend nicht in allen Sprachen.
bpoiss
@bpoiss gibt es --languagejetzt einen Parameter. Beispiel--language en_US
Darren Felton
25

Ich befürchte, dass Sie mit dem setup:static-content:deployBefehl magento console nicht nur ein Thema bereitstellen können .

Ich habe mich in den letzten 2 Wochen mit der Entwicklung von M2-Frontends beschäftigt und kann bestätigen, dass der Entwicklungsprozess ein echter Schmerz ist! Sie verlieren viel Zeit beim Bereitstellen von Änderungen aufgrund der Komplexität von weniger Dateihierarchien und Themen-Fallbacks.

Wie auch immer, ich bin jetzt Grunt. Hier erfahren Sie, wie Sie es installieren, konfigurieren und verwenden. Mit Grunt können Sie weniger Dateien für ein einzelnes Thema bereitstellen und / oder neu kompilieren.

Wenn Sie sich also im "Entwicklermodus" befinden , ist dies in Ordnung, da Grunt keine Bilder , Schriftarten und Javascript- Dateien pub/static/...bereitstellt , sodass Magento dies beim ersten Mal tun wird.

Führen Sie zum Aktivieren des Entwicklermodus Folgendes aus:

php bin/magento  deploy:mode:set developer

Wenn Sie nach einer Möglichkeit suchen, den gesamten Inhalt für ein einzelnes Thema in productionbereitzustellen, muss ich Ihnen leider mitteilen, dass dies nicht möglich ist.

Übrigens bin ich mir ziemlich sicher, dass es eine nette Feature-Anfrage wäre .

EDIT: Breaking News!

Ich habe eine Möglichkeit gefunden, alle Änderungen etwas schneller zu implementieren:

  • Installiere Grunt + konfiguriere dein Theme (eins für jede Sprache)
  • nach jedem Änderungslauf:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Voila, jetzt haben Sie alle Ihre Änderungen in Just (¿?) 12 ~ 16 Sek. Implementiert. 12 Sek. Ist mein persönlicher Rekord!

EDIT: Breaking News 2!

Bestätigt! Wenn Sie Änderungen an (bereits bereitgestellten) .less-Dateien vornehmen, führen Sie diese einfach aus grunt less:{theme_name}.

Sie müssen also grunt exec:{theme_name}nur laufen , wenn:

  • *.lessDatei hinzufügen / entfernen / umbenennen
  • Hinzufügen / Entfernen / Umbenennen einer *.jsFils
  • *.cssDatei hinzufügen / entfernen / umbenennen
  • imageDatei hinzufügen / entfernen / umbenennen
  • Hinzufügen / Entfernen requirejs-config.js

Zusätzlich deaktiviert ich blocks, layoutsund full pageCache - Speicher, so dass jede Änderung an Vorlagen und / oder XML - Layout wird automatisch angezeigt.

MauroNigrele
quelle
Kannst du mir zeigen, wie man in CSS weniger Veränderungen vornimmt? Ich bin im Topmenü gefangen. Einige Artikel gefunden, aber einige nicht, aber dort CSS ist da .. wie ein .nav-sectionsKind level0.
Qaisar Satti
Es ist ein sehr umfangreiches Thema. Ich empfehle Ihnen, (den gesamten) offiziellen Leitfaden ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ) zu lesen . Sie müssen alles verstehen lib > module > theme > fallback. Als Ausgangspunkt werfen Sie einen Blick auflib/web/css
MauroNigrele
Sie können die UI-Dokumentation in Ihrem eigenen Speicher sehen oder hier: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/... auch
MauroNigrele
2
Was ist, wenn Sie ein JS-Plugin bearbeiten? Ich fand heraus, dass die Änderungen nicht auf der Website wiedergegeben wurden. Ich musste die bearbeitete JS-Datei entfernen pub/staticund erneut implementieren ( setup:static-content:deploy), damit die Änderungen angezeigt wurden.
Doan
Ich bin mir nicht sicher, warum dies die akzeptierte Antwort ist. Die folgende Antwort ist viel besser.
Tisch
16

In Magento 2 können Sie mit diesen Befehlen Inhalte für bestimmte Themen bereitstellen und auch Themen ausschließen:

Inhalt Bereitstellen bestimmter Themen Mit diesem Befehl:

php bin/magento setup:static-content:deploy --theme Vendor/firsttheme --theme Vendor/secondtheme

Themen ausschließen Mit diesem Befehl:

php bin/magento setup:static-content:deploy --exclude-theme Vendor/yourtheme

Wenn Sie statischen Inhalt für eine bestimmte Sprache (en_US) bereitstellen und ein anderes Thema ausschließen müssen und keine HTML-Dateien minimieren müssen, verwenden Sie diesen Befehl:

magento setup:static-content:deploy en_US --exclude-theme Vendor/yourtheme --no-html-minify
Prinz Patel
quelle
5

Hier ist eine Verknüpfung, um nur Ihr Thema bereitzustellen

-a für Bereich

-t für das Thema

-l für Sprache

php bin/magento setup:static-content:deploy en_US -a frontend -t Magento/luma

Quelle

Qaisar Satti
quelle
1
Sollte es nicht ein -lvor dem geben en_US?
James Harrington
2

es scheint, dass Sie jetzt jede Sprache außer en_US manuell bereitstellen müssen. Ich arbeite mit 2.0.2 und Develop-Branch.

Gunther hebein
quelle
Sie, Sir, sind richtig.
dchayka
1

So stellen Sie ein bestimmtes Thema mit einer bestimmten Sprache bereit:

php bin/magento setup:static-content:deploy --theme Magento/backend --theme Vendor/mytheme pt_BR

Nahid
quelle
1

Wenn sich Ihr Magento im Entwicklermodus befindet, stellen Sie ein bestimmtes Thema mit den folgenden Befehlen bereit:

Statischen Inhalt entfernen

rm -rf pub/static/*                            /*to remove files excluding .htaccess*/

rm -rf var/view_preprocessed/*                 /*to remove files excluding .htaccess*/

Und dann

php bin/magento setup:static-content:deploy -f --theme Vendor/theme

ODER

php bin/magento s:s:d -f --theme Vendor/theme
Amatya Trivedi
quelle