Magento 2: Как я могу развернуть только мою тему

33

Я использовал это для развертывания контента, но это занимает слишком много времени.

php bin/magento setup:static-content:deploy 

затем я выясняю, как быстро добавить язык make, но все же развернуть все темы.

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

Как я могу deployтолько только содержание моей темы?

Кайсар Сатти
источник
К вашему сведению, есть PR , который добавит эту возможность и многое другое. Я думаю, что, вероятно, выйдет с v2.2.
thdoan
Другим возможным решением , но для режима производства magento.stackexchange.com/questions/126270/...
Я использую magento 2.0.4 и использую эту <code> php -dmemory_limit = 8G bin / magento setup: static-content: deploy --theme Rws / fonddecave en_US de_DE fr_FR </ code> Но ошибка приходит - опция Theme делает не существует. В чем моя ошибка, может кто-нибудь помочь в этом?
Рахвендра Оджа
Если у вас есть новый вопрос, задайте его, нажав кнопку « Задать вопрос» . Включите ссылку на этот вопрос, если это помогает обеспечить контекст. - Из обзора
Шоаиб Мунир
1
@DarrenFelton сделано.
Кайсар Сатти

Ответы:

57

Начиная с версии 2.1.1 вы можете развернуть определенные темы или исключить темы:

Развертывание определенных тем:

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

Исключить темы:

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

введите описание изображения здесь

Обновление этих опций теперь в документации .

Мэтью Тинсли
источник
у меня это не сработало и не упоминалось в devdocs.magento.com/guides/v2.1/config-guide/cli/… Там у нас всего 2 варианта.
Адель Ишфак,
@AdeelIshfaq Как и многие другие вещи, он еще не задокументирован, но работает в 2.1.1. Я прикрепил скриншот.
Мэтью Тинсли
Отправлен запрос на извлечение для добавления новых параметров в документацию: github.com/magento/devdocs/pull/827
Мэтью Тинсли,
@ MathewTinsley, возможно ли развернуть конкретную тему внешнего интерфейса на всех языках и конкретную тему внутреннего интерфейса только на одном языке? Мне не нужен мой бэкэнд на всех языках ..
bpoiss
@bpoiss есть --languageпараметр сейчас. Пример--language en_US
Даррен Фелтон
25

Боюсь, что вы просто не можете развернуть только одну тему с помощью setup:static-content:deployкоманды консоли magento .

Последние 2 недели я занимался разработкой внешнего интерфейса M2 и могу подтвердить, что процесс разработки - это настоящая боль! Вы потратите много времени на развертывание изменений из-за сложности иерархии файлов и откатов тем.

В любом случае, теперь я Grunt, здесь вы найдете, как установить, настроить и использовать его, с помощью Grunt вы можете развернуть и / или перекомпилировать меньше файлов для одной темы.

Так что с этим подходом все в порядке, если вы находитесь в режиме «разработчика», потому что Grunt не развертывает изображения , шрифты и файлы javascript,pub/static/... поэтому magento сделает это с первого раза.

Чтобы активировать режим разработчика, запустите:

php bin/magento  deploy:mode:set developer

Если вы ищете способ развернуть весь контент для одной темы, productionизвините, что это невозможно.

Кстати, я уверен, что это было бы хорошо запрос на функций .

РЕДАКТИРОВАТЬ: последние новости!

Я нашел способ развернуть все изменения немного быстрее:

  • Установите Grunt + настройте свою тему (по одной на каждый язык)
  • после каждого запуска изменений:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Вуаля, теперь все ваши изменения будут развернуты в течение всего (¿?) 12 ~ 16 секунд, 12 секунд - мой личный рекорд!

РЕДАКТИРОВАТЬ: последние новости 2!

Подтверждено! если вы вносите изменения в (уже развернутые) файлы .less, просто запустите grunt less:{theme_name}.

Итак, бегать нужно grunt exec:{theme_name}только тогда, когда:

  • Добавить / удалить / переименовать *.lessфайл
  • Добавить / Удалить / Переименовать *.jsFils
  • Добавить / удалить / переименовать *.cssфайл
  • Добавить / удалить / переименовать imageфайл
  • Добавить / Удалить requirejs-config.js

Кроме того , я инвалид blocks, layoutsи full pageкэша, поэтому любое изменение шаблонов и / или макеты XML будет отображаться автоматически.

MauroNigrele
источник
Можете ли вы подсказать мне, как сделать изменения в CSS через меньше, я застрял в topmenu. какой-то предмет найден, а некоторые нет, но там есть css .. как .nav-sectionsребенок level0.
Кайсар Сатти
Это очень большая тема, которую я рекомендую вам прочитать (полное) официальное руководство ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/… ). Вы должны понимать все lib > module > theme > fallback. В качестве отправной точки взгляните наlib/web/css
MauroNigrele
Вы можете просмотреть документацию библиотеки пользовательского интерфейса в своем собственном магазине или здесь: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/… а также
MauroNigrele
2
Как насчет того, когда вы редактируете плагин JS? Я узнал, что изменения не отражаются на сайте. Мне пришлось удалить отредактированный файл JS из pub/staticи повторно развернуть ( setup:static-content:deploy) для изменений, чтобы показать.
thdoan
Не уверен, почему это принятый ответ, тот, что ниже, намного лучше.
Тиши
16

В Magento 2 вы можете развернуть определенные темы контента, а также исключить темы с помощью следующих команд:

Содержание Развертывание определенных тем С помощью этой команды:

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

Исключить темы По этой команде:

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

Если вам нужно развернуть статический контент для определенного языка (en_US) и исключить другую тему, и вам не нужно минимизировать HTML-файлы, используйте эту команду:

magento setup:static-content:deploy en_US --exclude-theme Vendor/yourtheme --no-html-minify
Принц Патель
источник
5

Вот ярлык для развертывания только вашей темы

-а для области

-т по теме

-l для языка

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

Источник

Кайсар Сатти
источник
1
Не должно ли быть -lдо en_US?
Джеймс Харрингтон
2

Похоже, что к настоящему моменту вы должны развернуть любой язык, кроме en_US, вручную. Я работаю с 2.0.2 и разработка-филиал.

Гюнтер Хебейн
источник
Вы, сэр, правы.
дчайка
1

Чтобы развернуть конкретную тему с определенным языком:

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

Nahid
источник
1

Если ваш magento находится в режиме разработчика, разверните конкретную тему, используя следующие команды:

Удалить статический контент

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

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

А потом

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

ИЛИ

php bin/magento s:s:d -f --theme Vendor/theme
Аматя Триведи
источник