Magento 2: ¿Cómo puedo implementar solo mi tema?

33

Estaba usando esto para implementar el contenido, pero está tomando demasiado tiempo.

php bin/magento setup:static-content:deploy 

luego me doy cuenta de que agregar el lenguaje hace rápido pero aún implementa todos los temas.

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

¿Cómo puedo deploysolo el contenido de mi tema?

Qaisar Satti
fuente
Para su información, hay un RP que agregará esta capacidad y mucho más. Creo que probablemente saldrá con v2.2.
thdoan
Otra solución potencial pero para el modo de producción magento.stackexchange.com/questions/126270/…
Estoy usando magento 2.0.4 y estoy usando este <code> php -dmemory_limit = 8G bin / magento setup: static-content: deploy --theme Rws / fonddecave en_US de_DE fr_FR </code> Pero el error viene - la opción del tema sí no existe. ¿Cuál es mi error? ¿Puede alguien ayudarme en esto?
Raghwendra Ojha
Si tiene una nueva pregunta, hágalo haciendo clic en el botón Hacer pregunta . Incluya un enlace a esta pregunta si ayuda a proporcionar contexto. - De la opinión
Shoaib Munir
1
@DarrenFelton hecho.
Qaisar Satti

Respuestas:

56

A partir de 2.1.1 ahora puede implementar temas específicos o excluir temas:

Implementar temas específicos:

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

Excluir temas:

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

ingrese la descripción de la imagen aquí

Actualizar estas opciones ahora están en la documentación .

Mathew Tinsley
fuente
no funcionó para mí y tampoco lo mencionó en devdocs.magento.com/guides/v2.1/config-guide/cli/… Solo tenemos 2 opciones.
Adeel Ishfaq
@AdeelIshfaq Como muchas otras cosas, aún no está documentado, pero funciona en 2.1.1. Adjunto una captura de pantalla.
Mathew Tinsley
Presentó una solicitud de extracción para que se agreguen las nuevas opciones a la documentación: github.com/magento/devdocs/pull/827
Mathew Tinsley
@MathewTinsley, ¿es posible implementar un tema de interfaz específico en todos los idiomas y un tema de fondo específico solo en un idioma? No necesito mi backend en todos los idiomas ..
bpoiss
@bpoiss hay un --languageparámetro ahora. Ejemplo--language en_US
Darren Felton el
25

Me temo que no puede implementar solo un tema mediante el setup:static-content:deploycomando de consola magento .

¡He estado lidiando con el desarrollo de la interfaz M2 durante las últimas 2 semanas y puedo afirmar que el proceso de desarrollo es un DOLOR real! Perderá mucho tiempo implementando cambios debido a la complejidad de una menor jerarquía de archivos y fallas de temas.

De todos modos, ahora soy Grunt, aquí encontrarás cómo instalarlo, configurarlo y usarlo, con Grunt puedes implementar y / o recompilar menos archivos para un solo tema.

Entonces, ese enfoque está bien si está en modo "desarrollador" porque Grunt no implementa imágenes , fuentes y archivos javascript para pub/static/...que magento lo haga la primera vez que sea necesario.

Para activar el modo desarrollador, ejecute:

php bin/magento  deploy:mode:set developer

Si está buscando una manera de implementar todo el contenido para un solo tema production, lamento decir que eso no es posible.

Por cierto, estoy bastante seguro de que sería una buena solicitud de función .

EDITAR: ¡Noticias de última hora!

Encontré una manera de implementar todos los cambios un poco más rápido:

  • Instala Grunt + configura tu tema (uno para cada idioma)
  • después de cada cambio ejecutado:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

¡Voila, ahora tendrás todos tus cambios desplegados en Just (¿?) 12 ~ 16 sec, 12 sec es mi récord personal!

EDITAR: ¡Noticias de última hora 2!

¡Confirmado! si está realizando cambios en un archivo (ya implementado) .less simplemente ejecute grunt less:{theme_name}.

Entonces, solo tienes que correr grunt exec:{theme_name}cuando:

  • Agregar / Eliminar / Renombrar un *.lessarchivo
  • Agregar / Eliminar / Renombrar un *.jsFils
  • Agregar / Eliminar / Renombrar un *.cssarchivo
  • Agregar / Eliminar / Renombrar un imagearchivo
  • Agregar eliminar requirejs-config.js

Además me discapacitados blocks, layoutsy full pagecachés, por lo que cualquier cambio en las plantillas y / o diseños XML se muestra automáticamente.

MauroNigrele
fuente
¿Me puede guiar cómo hacer cambios en CSS a través de menos estoy atrapado en el menú superior. se ha encontrado algún elemento pero otros no, pero hay css está ahí ... como un .nav-sectionsniño level0.
Qaisar Satti
Es un tema muy extenso que le recomiendo que lea (la guía completa) ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ). debe entender todo lib > module > theme > fallback. Como punto de partida, eche un vistazolib/web/css
MauroNigrele
Puede ver la documentación de la Biblioteca de UI en su propia tienda o aquí: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/… también
MauroNigrele
2
¿Qué pasa cuando editas un complemento JS? Descubrí que los cambios no se reflejaban en el sitio. Tuve que eliminar el archivo JS editado pub/staticy volver a implementar ( setup:static-content:deploy) para que se muestren los cambios.
Thdoan
No estoy seguro de por qué esta es la respuesta aceptada, la siguiente es mucho mejor.
Tisch
16

En Magento 2, puede desplegar contenido en temas específicos y también excluir temas mediante estos comandos:

Contenido Implementar temas específicos con este comando:

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

Excluir temas con este comando:

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

Si necesita implementar contenido estático para un idioma en particular (en_US) y excluir otro tema, y no necesita minimizar los archivos HTML , use este comando:

magento setup:static-content:deploy en_US --exclude-theme Vendor/yourtheme --no-html-minify
Príncipe Patel
fuente
5

Aquí hay un acceso directo para implementar solo su tema

-a por área

-t por tema

-l para lenguaje

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

Fuente

Qaisar Satti
fuente
1
¿No debería haber un -lantes de la en_US?
James Harrington
2

parece que ahora debe implementar cualquier idioma, excepto en_US manualmente. Estoy trabajando con 2.0.2 y desarrollo-rama.

Gunther Hebein
fuente
Usted señor, tiene razón.
dchayka
1

Para implementar un tema específico con un idioma específico:

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

Nahid
fuente
1

Si su magento está en modo desarrollador, implemente un tema específico usando los siguientes comandos:

Eliminar contenido estático

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

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

Y entonces

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

O

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