Magento 2: Jak mogę wdrożyć tylko mój motyw


33

Użyłem tego do wdrożenia zawartości, ale zajmuje to zbyt dużo czasu.

php bin/magento setup:static-content:deploy 

potem wymyśliłem, że dodaję szybki język, ale nadal wdrażam wszystkie motywy.

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

Jak mogę wyświetlić deploytylko treść mojego motywu?


Do Twojej dyspozycji jest PR , który doda tę możliwość i wiele więcej. Myślę, że prawdopodobnie wyjdzie z v2.2.
thdoan

Inne potencjalne rozwiązanie, ale nie w trybie produkcyjnym magento.stackexchange.com/questions/126270/…

Korzystam z Magento 2.0.4 i używam <code> php -dmemory_limit = Konfiguracja bin / magento 8G: static-content: deploy --theme Rws / fonddecave en_US de_DE fr_FR </code> Ale nadchodzi błąd - opcja nie istnieje. Jaki mój błąd może w tym pomóc?
Raghwendra Ojha

Jeśli masz nowe pytanie, zadaj je, klikając przycisk Zadaj pytanie . Dołącz link do tego pytania, jeśli pomaga to w zapewnieniu kontekstu. - Z recenzji
Shoaib Munir

1
@DarrenFelton gotowe.
Qaisar Satti

Odpowiedzi:


56

Od 2.1.1 możesz teraz wdrażać określone motywy lub wykluczać motywy:

Wdróż określone tematy:

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

Wyklucz motywy:

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

wprowadź opis zdjęcia tutaj

Zaktualizuj te opcje są teraz w dokumentacji .


to nie działało dla mnie również nie wspomniano w devdocs.magento.com/guides/v2.1/config-guide/cli/… Mamy tylko 2 opcje.
Adeel Ishfaq,

@AdeelIshfaq Podobnie jak wiele innych rzeczy, nie jest jeszcze udokumentowany, ale działa w 2.1.1. Załączam zrzut ekranu.
Mathew Tinsley,

Przesłano żądanie ściągnięcia, aby nowe opcje zostały dodane do dokumentacji: github.com/magento/devdocs/pull/827
Mathew Tinsley

@MathewTinsley, czy możliwe jest wdrożenie określonego motywu interfejsu we wszystkich językach, a określonego motywu interfejsu tylko w jednym języku? Nie potrzebuję mojego backendu we wszystkich językach ..
bpoiss,

@ bpoiss jest --languageteraz parametr. Przykład--language en_US
Darren Felton

25

Obawiam się, że nie można wdrożyć tylko jednego motywu za pomocą setup:static-content:deploypolecenia konsoli magento .

Zajmuję się tworzeniem frontendu M2 przez ostatnie 2 tygodnie i mogę potwierdzić, że proces tworzenia to prawdziwy BÓL! Stracisz dużo czasu na wdrażaniu zmian ze względu na złożoność mniejszej hierarchii plików i awarie motywów.

W każdym razie jestem teraz Grunt, tutaj znajdziesz informacje na temat instalacji, konfiguracji i korzystania z niego, dzięki Grunt możesz wdrożyć i / lub ponownie skompilować mniej plików dla jednego motywu.

Takie podejście jest w porządku, jeśli jesteś w trybie „dewelopera”, ponieważ Grunt nie wdraża obrazów , czcionek i plików javascript do, pub/static/...więc Magento zrobi to za pierwszym razem.

Aby aktywować tryb programisty, uruchom:

php bin/magento  deploy:mode:set developer

Jeśli szukasz sposobu na wdrożenie całej zawartości dla jednego motywu production, przykro mi to powiedzieć, że nie jest to możliwe.

BTW Jestem całkiem pewien, że byłoby to miłe żądanie funkcji .

EDYCJA: Najnowsze wiadomości!

Znalazłem sposób na szybsze wdrożenie wszystkich zmian:

  • Zainstaluj Grunt + skonfiguruj swój motyw (jeden dla każdego języka)
  • po każdej zmianie:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Voila, teraz wszystkie zmiany zostaną wdrożone w ciągu zaledwie (?) 12 ~ 16 sekund, 12 sekund to mój osobisty rekord!

EDYCJA: Breaking News 2!

Zatwardziały! jeśli wprowadzasz zmiany do (już wdrożonego) pliku .less, po prostu uruchom grunt less:{theme_name}.

Musisz więc uruchomić grunt exec:{theme_name}tylko wtedy, gdy:

  • Dodaj / Usuń / Zmień nazwę *.lesspliku
  • Dodaj / Usuń / Zmień nazwę *.jsFils
  • Dodaj / Usuń / Zmień nazwę *.csspliku
  • Dodaj / Usuń / Zmień nazwę imagepliku
  • Dodaj usuń requirejs-config.js

Dodatkowo mam wyłączone blocks, layoutsa full pageskrzynek, więc wszelkie zmiany w szablonach i / lub układów xml zostanie wyświetlona automatycznie.


czy możesz mi wytłumaczyć, jak zmienić css przez mniej, utknąłem w topmenu. znaleziono jakiś przedmiot, ale niektórych nie ma, ale jest tam css .. jak .nav-sectionsdziecko level0.
Qaisar Satti,

To bardzo duży temat, polecam przeczytać (cały) oficjalny przewodnik ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ). musisz zrozumieć wszystko lib > module > theme > fallback. Na początek spójrz nalib/web/css
MauroNigrele

Można zapoznać się z dokumentacją UI Library w swoim sklepie lub tutaj: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/... także
MauroNigrele

2
Co powiesz na edycję wtyczki JS? Dowiedziałem się, że zmiany nie zostały odzwierciedlone w witrynie. Musiałem usunąć edytowany plik JS z pub/statici ponownie wdrożyć ( setup:static-content:deploy), aby zmiany zostały pokazane.
thdoan

Nie jestem pewien, dlaczego jest to zaakceptowana odpowiedź, ta poniżej jest znacznie lepsza.
Tisch

16

W Magento 2 możesz wdrożyć zawartość, a także wykluczyć kompozycje za pomocą tych poleceń:

Treść Wdróż określone kompozycje Za pomocą tego polecenia:

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

Wyklucz motywy Za pomocą tego polecenia:

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

Jeśli potrzebujesz wdrożyć zawartość statyczną dla określonego języka (en_US) i wykluczyć inny motyw i nie musisz minimalizować plików HTML, użyj tego polecenia:

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

5

Oto skrót do wdrożenia tylko motywu

-a dla obszaru

-t na temat

-l dla języka

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

Źródło


1
Czy nie powinno być -lprzed en_US?
James Harrington

2

wydaje się, że do tej pory musisz ręcznie wdrożyć dowolny język oprócz en_US. pracuję z 2.0.2 i gałąź rozwoju.


Proszę pana, masz rację.
dchayka

1

Aby wdrożyć określony motyw w określonym języku:

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


1

Jeśli twoje magento jest w trybie programisty, wdróż konkretny motyw, używając poniższych poleceń:

Usuń zawartość statyczną

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

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

I wtedy

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

LUB

php bin/magento s:s:d -f --theme Vendor/theme
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.