Почему нельзя переключиться обратно в режим по умолчанию на Magento 2?

32

Поэтому я переключился в режим разработчика при разработке проекта Magento 2 с помощью следующей команды:

php bin/magento deploy:mode:set developer

Все хорошо, я получил это сообщение и отлично разработал сайт:

Текущий режим приложения: разработчик.

По некоторым причинам я хотел вернуться в defaultрежим, чтобы просто проверить поведение сайта в этом режиме. Никаких конкретных причин, если честно, я просто хотел вернуться в этот режим.

Поэтому я запустил следующую команду:

php bin/magento deploy:mode:set default

Но я получил эту странную ошибку без дальнейших объяснений:

Cannot switch into given mode "default"

Я проверил следующий файл, который обрабатывает настройки режима, Magento/Deploy/Console/Command/SetModeCommand.phpи вот что я нашел:

switch($toMode) {
    case State::MODE_DEVELOPER:
        $modeController->enableDeveloperMode();
        break;
    case State::MODE_PRODUCTION:
        if ($skipCompilation) {
            $modeController->enableProductionModeMinimal();
        } else {
            $modeController->enableProductionMode();
        }
        break;
    default:
        throw new LocalizedException(__('Cannot switch into given mode "%1"', $toMode));
}

Как странно, что Magento 2 поставляется в режиме по умолчанию, но вы не можете переключиться обратно в этот конкретный режим . В чем причина этого?

Редактировать: для тех, кто заинтересован, я создал проблему на github: https://github.com/magento/magento2/issues/4292

Рафаэль в цифровом пианизме
источник
1
Это очень хороший вопрос, и мы собирали отзывы, почему вы хотите использовать режим по умолчанию, а не разработчика. И кажется, что вы определяете причину как «Нет конкретных причин». Но я согласен - мы должны разрешить включение / выключение режима, так как он по умолчанию. На данный момент у нас в задаче отставания добавить его в список возможных режимов.
Максек
6
Одной из причин может быть: я разработал расширение, и некоторые из моих клиентов могут работать в режиме по умолчанию
Кристоф на Fooman

Ответы:

33

Режим по умолчанию - ни здесь, ни там.

обзор режима

Команда Magento действительно хочет, чтобы вы использовали либо режим производства на своем сайте, либо режим разработчика во время разработки. Причина, по которой существует режим по умолчанию, состоит в том, чтобы иметь что-то, что, по крайней мере, работало бы разумно при развертывании непосредственно из загруженного кода без дальнейшего вмешательства.

При запуске php bin/magento deploy:mode:setвы определили себя как способный и не нуждающийся в режиме по умолчанию. Поскольку нет необходимости возвращаться в режим по умолчанию, Magento не предоставил вам способа сделать это.

Кристоф в Фуман
источник
6
Я знал, что должен был сделать эту фотографию. Кстати, вы сидели 5-6 стульев слева от меня :)
Мариус
1
Закончилось создание проблемы: github.com/magento/magento2/issues/4292
Рафаэль в Digital Pianism
2
Причина, по которой вы на один голос впереди, в том, что я проголосовал против вас :).
Мариус
3
Причина, по которой Мариус позади, в том, что я за него проголосовал :-P
philwinkle
3
Причина, по которой нужно переключиться обратно в режим «По умолчанию», заключается в том, что режим «разработчик» слишком медленный. Тестирование вашей страницы является важной частью разработки и не должно быть замедлено, и при этом нет необходимости полностью развертывать все, используя «рабочий» режим. Как разработчик, я предпочел перенести недостатки режима «по умолчанию», чем быть вынужденным выбирать между «разработчиком» и «производством»
leedch
18

Режим по умолчанию существует только для установки Magento 2.
Он не должен использоваться для разработки или производства.
После установки вы можете переключаться только между dev и prod.

Источник: Алан Кент @ MagentoImagine2016

Мариус
источник
Закончилось создание проблемы: github.com/magento/magento2/issues/4292
Рафаэль в Digital Pianism
10

Как разработчик Windows, в режиме разработчика Magento хочет создавать символические ссылки на статические ресурсы, но использует команду Linux, а не команду windows. Это создает много ошибок в файлах js и css.

Чтобы вернуться в режим по умолчанию, откройте: -

приложение / и т.д. / env.php

И изменить: -

'MAGE_MODE' => 'разработчик',

Вернуться к:-

'MAGE_MODE' => 'default',

И повторно разверните статические файлы снова.

Даллас Кларк
источник
Примечание. Переменные среды могут переопределять это значение.
Эльзо Валуги
1
Обратите внимание, что Magento официально не поддерживает Windows, поэтому попытка разработки под Windows может также вызвать другие проблемы.
ProcessEight
1

Я запускал с той же проблемой, но изменение его env.phpвручную работает.

Мухаммед Муджассам
источник
Да, конечно, я знаю, что могу это сделать напрямую. Мне просто интересно, почему это невозможно через CLI
Рафаэль на Digital Pianism
0

** установить режим 2.3.x **

Теперь Magento позволяет нам вернуться в режим по умолчанию с 2.3.x

Pavan U
источник