Magento 2: Como implantar apenas meu tema


33

Eu estava usando isso para implantar o conteúdo, mas está demorando muito.

php bin/magento setup:static-content:deploy 

então eu acho que a adição do idioma torna rápido, mas ele ainda implanta todos os temas.

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

Como posso deployapenas apenas o conteúdo do meu tema?


Para sua informação, existe um PR que adicionará esse recurso e muito mais. Eu acho que provavelmente sairá com a v2.2.
thdoan

Outra solução potencial, mas para o modo de produção magento.stackexchange.com/questions/126270/...

Estou usando o magento 2.0.4 e usando esta <code> php -dmemory_limit = 8G configuração bin / magento: static-content: deploy --theme Rws / fonddecave pt_US de_DE fr_FR </code> Mas erro está chegando - a opção theme não existe. Qual é o meu erro que alguém pode ajudar nisso?
Raghwendra Ojha 20/04

Se você tiver uma nova pergunta, faça-o clicando no botão Fazer pergunta . Inclua um link para esta pergunta se ela ajudar a fornecer contexto. - Da avaliação
Shoaib Munir 20/04

1
@DarrenFelton done.
Qaisar Satti

Respostas:


56

A partir da versão 2.1.1, agora você pode implantar temas específicos ou excluir temas:

Implante 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

insira a descrição da imagem aqui

Atualize essas opções agora estão na documentação .


não funcionou para mim também não foi mencionado em devdocs.magento.com/guides/v2.1/config-guide/cli/… Lá temos apenas duas opções.
Adeel Ishfaq

@AdeelIshfaq Como muitas outras coisas, ainda não está documentada, mas funciona na 2.1.1. Anexei uma captura de tela.
Mathew Tinsley

Apresentou uma solicitação de recebimento para que as novas opções adicionadas à documentação: github.com/magento/devdocs/pull/827
Mathew Tinsley

@MathewTinsley, é possível implantar um tema de front-end específico em todos os idiomas e um tema de back-end específico apenas em um idioma? Eu não preciso do meu backend em todas as línguas ..
bpoiss

@bpoiss agora existe um --languageparâmetro. Exemplo--language en_US
Darren Felton

25

Receio que você não possa implantar apenas um tema pelo setup:static-content:deploycomando magento console .

Eu tenho lidado com o desenvolvimento de front-end M2 nas últimas 2 semanas e posso afirmar que o processo de desenvolvimento é uma verdadeira DOR! Você perderá muito tempo implementando alterações devido à complexidade de menos hierarquia de arquivos e fallbacks de temas.

De qualquer forma, agora eu sou Grunt aqui, você encontrará como instalar, configurar e usá-lo. Com o Grunt, você pode implantar e / ou recompilar menos arquivos para um único tema.

Portanto, essa abordagem não tem problema se você estiver no modo "desenvolvedor", porque o Grunt não implanta imagens , fontes e arquivos javascript para pub/static/...que o magento o faça da primeira vez.

Para ativar o modo de desenvolvedor, execute:

php bin/magento  deploy:mode:set developer

Se você está procurando uma maneira de implantar todo o conteúdo de um único tema production, lamento dizer que isso não é possível.

BTW, tenho certeza de que seria uma boa solicitação de recurso .

EDIT: Últimas Notícias!

Eu encontrei uma maneira de implantar todas as alterações um pouco mais rápido:

  • Instale o Grunt + configure seu tema (um para cada idioma)
  • após cada alteração executada:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Agora, agora você terá todas as alterações implementadas em apenas (¿?) 12 ~ 16 s, 12 s é o meu recorde pessoal!

EDIT: Últimas Notícias 2!

Confirmado! se você estiver fazendo alterações em um arquivo .less (já implantado), basta executar grunt less:{theme_name}.

Então, você precisa executar grunt exec:{theme_name}apenas quando:

  • Adicionar / Remover / Renomear um *.lessArquivo
  • Adicionar / Remover / Renomear um *.jsArquivo
  • Adicionar / Remover / Renomear um *.cssArquivo
  • Adicionar / Remover / Renomear um imageArquivo
  • Adicionar / Remover requirejs-config.js

Além disso eu desativado blocks, layoutse full pagecaches, portanto, qualquer mudança de modelos e / ou layouts XML será exibido automaticamente.


você pode me orientar como fazer alterações no CSS através de menos estou preso no menu superior. algum item encontrado, mas outros não, mas há CSS lá .. como .nav-sectionsfilho level0.
Qaisar Satti

É um tópico muito amplo. Recomendo que você leia o guia oficial (inteiro) ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ). você deve entender tudo lib > module > theme > fallback. como ponto de partida dar uma olhadalib/web/css
MauroNigrele

Você pode ver a documentação da biblioteca de interface do usuário em sua própria loja ou aqui: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/... bem
MauroNigrele

2
E quando você edita um plugin JS? Eu descobri que as mudanças não estavam sendo refletidas no site. Eu tive que remover o arquivo JS editado pub/statice reimplementar ( setup:static-content:deploy) para que as alterações fossem exibidas.
thdoan

Não sei por que essa é a resposta aceita, a abaixo é muito melhor.
Tisch

16

No Magento 2, você pode implantar conteúdos específicos e também excluir temas por estes comandos:

Conteúdo Implante temas específicos Por este comando:

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

Excluir temas Por este comando:

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

Se você precisar implantar conteúdo estático para um idioma específico (en_US) e excluir outro tema, e não precisar reduzir os arquivos HTML , use este comando:

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

5

Aqui está um atalho para implantar apenas seu tema

-a para a área

-t para o tema

-l para o idioma

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

Fonte


1
Não deveria haver um -lantes do en_US?
James Harrington

2

parece que agora você precisa implantar qualquer idioma, exceto en_US manualmente. Eu estou trabalhando com 2.0.2 e desenvolver-filial.


O senhor está correto.
Dchayka # 6/17

1

Para implantar um tema específico com um idioma específico:

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


1

Se o seu magento estiver no modo de desenvolvedor, implemente um tema específico usando os comandos abaixo:

Remover conteúdo estático

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

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

E depois

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

OU

php bin/magento s:s:d -f --theme Vendor/theme
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.