¿Por qué no se puede volver al modo predeterminado en Magento 2?

32

Así que cambié al modo desarrollador mientras desarrollaba en un proyecto Magento 2 usando el siguiente comando:

php bin/magento deploy:mode:set developer

Todo bien, recibí este mensaje y desarrollé bien el sitio web:

Modo de aplicación actual: desarrollador.

Por algunas razones, quería volver al defaultmodo solo para verificar el comportamiento del sitio web en este modo. No hay razones específicas para ser honesto, solo quería volver a este modo.

Entonces ejecuté el siguiente comando:

php bin/magento deploy:mode:set default

Pero obtuve este extraño error sin más explicaciones:

Cannot switch into given mode "default"

Revisé el siguiente archivo que maneja la configuración del modo Magento/Deploy/Console/Command/SetModeCommand.phpy esto es lo que he encontrado:

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));
}

Qué extraño es eso, Magento 2 se envía en modo predeterminado, pero no puede volver a ese modo específico . ¿Cuál es la razón detrás de esto?

Editar: para aquellos interesados, terminé creando un problema en github: https://github.com/magento/magento2/issues/4292

Raphael en Digital Pianism
fuente
1
Es una muy buena pregunta, y estábamos recopilando comentarios por qué querría usar el modo predeterminado, pero no el desarrollador. Y parece que define la razón como "No hay razones específicas". Pero estoy de acuerdo: debemos permitir activar / desactivar el modo, ya que es por defecto. Por el momento tenemos en nuestra tarea de trabajo pendiente agregarlo en la lista de modos posibles.
maksek
66
Una razón sería: he desarrollado una extensión y algunos de mis clientes podrían estar ejecutándose en modo predeterminado
Kristof en Fooman el

Respuestas:

33

El modo predeterminado no es ni aquí ni allá.

resumen del modo

El equipo de Magento realmente quiere que uses el modo de producción en tu sitio en vivo o el modo de desarrollador durante el desarrollo. La razón por la que existe el Modo predeterminado es tener algo que al menos se ejecute razonablemente cuando se implementa directamente desde el código descargado sin más intervención.

Al ejecutarlo, php bin/magento deploy:mode:setse ha identificado como capaz y no necesita el modo predeterminado. Como no hay ninguna razón para volver al modo predeterminado, Magento no le proporcionó una forma de hacerlo.

Kristof en Fooman
fuente
66
Sabía que debería haber tomado esa foto. Por cierto, estabas sentado 5-6 sillas a mi izquierda :)
Marius
1
Terminé creando un problema: github.com/magento/magento2/issues/4292
Raphael en Digital Pianism
2
La razón por la que tienes un voto por delante es porque te voté :).
Marius
3
La razón por la que Marius está detrás es porque lo
rechacé :-P
3
La razón por la que desea volver al modo "Predeterminado" es claramente porque el modo "desarrollador" es demasiado lento. Probar su página es una parte importante del desarrollo y no debe ralentizarse ni tener la necesidad de implementar completamente todo usando el modo "producción". Como desarrollador
preferí
18

El modo predeterminado es solo para instalar Magento 2.
No debe usarse para desarrollo o producción.
Después de la instalación, solo puede cambiar entre dev y prod.

Fuente: Alan Kent @ MagentoImagine2016

Marius
fuente
Terminé creando un problema: github.com/magento/magento2/issues/4292
Raphael en Digital Pianism
10

Como desarrollador de Windows, en modo desarrollador, Magento quiere crear enlaces simbólicos a los activos estáticos, pero usa el comando Linux y no el comando de Windows. Esto crea muchos errores en los archivos js y css.

Para volver al modo predeterminado, abra: -

app / etc / env.php

Y cambio:-

'MAGE_MODE' => 'desarrollador',

De regreso:-

'MAGE_MODE' => 'predeterminado',

Y vuelva a implementar archivos estáticos nuevamente.

Dallas Clarke
fuente
Nota: Las variables de entorno pueden anular este valor.
Elzo Valugi
1
Tenga en cuenta que Magento no es oficialmente compatible con Windows, por lo que tratar de desarrollar en Windows también podría producir otros problemas.
ProcessEight
1

Corrí con el mismo problema, pero cambiarlo env.phpmanualmente funciona.

Mohammad Mujassam
fuente
Sí, por supuesto, sé que podría hacerlo directamente. Me preguntaba por qué no es posible a través de la CLI
Raphael en Digital Pianism
0

** establecer modo 2.3.x **

Ahora Magento nos permite volver al modo predeterminado desde 2.3.x

Pavan U
fuente