¿Por qué no se puede volver al modo predeterminado en Magento 2?
-
29-09-2020 - |
Pregunta
Entonces cambié al modo de 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 default
modo sólo para comprobar el comportamiento del sitio web en este modo.Para ser honesto, no hay razones específicas, solo quería volver a este modo.
Entonces ejecuté el siguiente comando:
php bin/magento deploy:mode:set default
Pero recibí 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.php
y esto es lo que encontré:
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));
}
Que raro es eso, Magento 2 se envía en modo predeterminado pero no puedes 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
Solución
El modo predeterminado no está ni aquí ni allá.
El equipo de Magento realmente quiere que utilice el modo de producción en su sitio en vivo o el modo de desarrollador durante el desarrollo.La razón por la que existe el modo predeterminado es para tener algo que al menos se ejecute razonablemente cuando se implemente directamente desde el código descargado sin mayor intervención.
Mediante la ejecución php bin/magento deploy:mode:set
se ha identificado como capaz y no necesita el modo predeterminado.Como no hay ningún motivo para volver al modo predeterminado, Magento no le proporcionó una manera de hacerlo.
Otros consejos
El modo predeterminado existe sólo para instalar Magento 2.
No debe utilizarse para desarrollo o producción.
Después de la instalación, solo puedes cambiar entre dev y prod.
Fuente:Alan Kent @MagentoImagine2016
Como desarrollador de Windows, en modo desarrollador, Magento quiere crear enlaces simbólicos a los activos estáticos, pero usa el comando de 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' => 'developer',
De regreso:-
'MAGE_MODE' => 'default',
Y vuelva a implementar archivos estáticos.
Corrí con el mismo problema, pero cambiándolo en env.php
Funciona manualmente.