Magento 2: Comment puis-je déployer mon thème uniquement

33

J'utilisais cela pour déployer le contenu mais cela prend trop de temps.

php bin/magento setup:static-content:deploy 

alors je pense que l'ajout de la langue rend rapide mais il déploie toujours tous les thèmes.

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

Comment puis-je deployuniquement le contenu de mon thème?

Qaisar Satti
la source
Pour info, il y a un PR qui ajoutera cette capacité et bien plus encore. Je pense qu'il sortira probablement avec la v2.2.
thdoan
Une autre solution potentielle mais pour le mode de production magento.stackexchange.com/questions/126270/…
J'utilise magento 2.0.4 et j'utilise cette <code> php -dmemory_limit = configuration 8G bin / magento: static-content: deploy --theme Rws / fonddecave en_US de_DE fr_FR </code> Mais l'erreur vient - l'option theme ne n'existe pas. Quelle est mon erreur, quelqu'un peut-il aider à ce sujet?
Raghwendra Ojha
Si vous avez une nouvelle question, posez-la en cliquant sur le bouton Poser une question . Incluez un lien vers cette question si cela permet de fournir un contexte. - De l'avis
Shoaib Munir
1
@DarrenFelton fait.
Qaisar Satti

Réponses:

57

Depuis 2.1.1, vous pouvez désormais déployer des thèmes spécifiques ou exclure des thèmes:

Déployer des thèmes spécifiques:

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

Exclure des thèmes:

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

entrez la description de l'image ici

Mettre à jour ces options sont maintenant dans la documentation .

Mathew Tinsley
la source
cela n'a pas fonctionné pour moi et il n'a pas été mentionné dans devdocs.magento.com/guides/v2.1/config-guide/cli/… Là, nous n'avons que 2 options.
Adeel Ishfaq
@AdeelIshfaq Comme tant d'autres choses, il n'est pas encore documenté, mais il fonctionne en 2.1.1. J'ai joint une capture d'écran.
Mathew Tinsley
Soumis une demande d'extraction pour que les nouvelles options soient ajoutées à la documentation: github.com/magento/devdocs/pull/827
Mathew Tinsley
@MathewTinsley, est-il possible de déployer un thème frontend spécifique dans toutes les langues, et un thème backend spécifique uniquement dans une langue? Je n'ai pas besoin de mon backend dans toutes les langues ..
bpoiss
@bpoiss il y a un --languageparamètre maintenant. Exemple--language en_US
Darren Felton
25

Je crains que vous ne puissiez tout simplement pas déployer un seul thème par la setup:static-content:deploycommande de la console magento .

Je m'occupe du développement frontend M2 depuis 2 semaines et je peux affirmer que le processus de développement est une vraie DOULEUR! Vous perdrez beaucoup de temps à déployer des modifications en raison de la complexité de la hiérarchie des fichiers et des retombées des thèmes.

Quoi qu'il en soit, je suis Grunt maintenant ici, vous trouverez comment l'installer, le configurer et l'utiliser, avec Grunt vous pouvez déployer et / ou recompiler moins de fichiers pour un seul thème.

Donc, cette approche est correcte si vous êtes en mode "développeur" car Grunt ne déploie pas d' images , de polices et de fichiers javascript pour pub/static/...que magento le fasse la première fois.

Pour activer le mode développeur, exécutez:

php bin/magento  deploy:mode:set developer

Si vous cherchez un moyen de déployer l'intégralité du contenu pour un seul thème dans productionJe suis désolé de dire que ce n'est pas possible.

BTW Je suis presque sûr que ce serait une belle demande de fonctionnalité à faire.

EDIT: Dernières nouvelles!

J'ai trouvé un moyen de déployer toutes les modifications un peu plus rapidement:

  • Installez Grunt + config votre thème (un pour chaque langue)
  • après chaque modification:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Voila maintenant, vous aurez tous vos changements déployés en seulement (¿?) 12 ~ 16 sec, 12 sec est mon record personnel!

EDIT: Dernières nouvelles 2!

Confirmé! si vous apportez des modifications à un fichier .less (déjà déployé), exécutez-le grunt less:{theme_name}.

Donc, vous ne devez exécuter grunt exec:{theme_name}que lorsque:

  • Ajouter / supprimer / renommer un *.lessfichier
  • Ajouter / supprimer / renommer un *.jsfils
  • Ajouter / supprimer / renommer un *.cssfichier
  • Ajouter / supprimer / renommer un imagefichier
  • Ajouter enlever requirejs-config.js

De plus , je désactivé blocks, layoutset full pageCaches, de sorte que toute modification de modèles et / ou mises en page XML est automatiquement affichée.

MauroNigrele
la source
pouvez-vous me guider comment faire des changements dans css à travers moins je suis coincé dans topmenu. certains article trouvé , mais certains ne sont pas , mais il est là .. css comme .nav-sectionsenfant level0.
Qaisar Satti
C'est un sujet très vaste que je vous recommande de lire (l'intégralité) du guide officiel ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ). vous devez tout comprendre lib > module > theme > fallback. Comme point de départ, jetez un œil àlib/web/css
MauroNigrele
Vous pouvez voir la documentation de la bibliothèque d'interface utilisateur dans votre propre magasin ou ici: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/… ainsi
MauroNigrele
2
Qu'en est-il lorsque vous modifiez un plug-in JS? J'ai découvert que les changements ne se reflétaient pas sur le site. J'ai dû supprimer le fichier JS modifié pub/staticet redéployer ( setup:static-content:deploy) pour que les modifications soient affichées .
thdoan
Je ne sais pas pourquoi c'est la réponse acceptée, celle ci-dessous est bien meilleure.
Tisch
16

Dans Magento 2, vous pouvez déployer du contenu sur des thèmes spécifiques et également exclure des thèmes par ces commandes:

Contenu Déployer des thèmes spécifiques Par cette commande:

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

Exclure des thèmes Par cette commande:

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

Si vous avez besoin de déployer du contenu statique pour une langue particulière (en_US) , d'exclure un autre thème et de ne pas réduire les fichiers HTML, utilisez cette commande:

magento setup:static-content:deploy en_US --exclude-theme Vendor/yourtheme --no-html-minify
Prince Patel
la source
5

Voici un raccourci pour déployer uniquement votre thème

-a pour la zone

-t pour le thème

-l pour la langue

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

La source

Qaisar Satti
la source
1
Ne devrait-il pas y en avoir -lavant le en_US?
James Harrington
2

il semble que vous devez maintenant déployer n'importe quelle langue sauf en_US manuellement. je travaille avec 2.0.2 et develop-branch.

Gunther Hebein
la source
Vous avez raison, monsieur.
dchayka
1

Pour déployer un thème spécifique avec une langue spécifique:

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

Nahid
la source
1

Si votre magento est en mode développeur, déployez un thème spécifique à l'aide des commandes ci-dessous:

Supprimer le contenu statique

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

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

Et alors

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

OU

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