为什么不能在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
这是一个很好的问题,我们正在收集反馈,为什么您要使用默认模式而不是开发人员。似乎您将原因定义为“无特定原因”。但我同意-由于默认情况下,我们必须允许打开/关闭该模式。目前,我们的积压任务中已将其添加到可能的模式列表中。
maksek '16

6
其中一个原因是:我已经开发了一个扩展,我的一些客户可能会在默认模式下运行
克里斯托夫在Fooman

Answers:


33

默认模式既不存在也不存在。

模式概述

Magento团队确实希望您在现场站点上使用生产模式,或者在开发期间使用开发人员模式。存在“默认模式”的原因是,如果直接从下载的代码中进行部署而无需进一步干预,则它们至少应能够合理运行。

通过运行,php bin/magento deploy:mode:set您已经确定自己有能力并且不需要默认模式。由于没有理由需要返回默认模式,因此Magento没有为您提供一种方法。


6
我知道我应该拍张照片。顺便说一句,你坐在我左边的5-6张椅子上:)
马吕斯


2
您领先一票的原因是我投票支持您:)。
Marius

3
马吕斯落后的原因是我对他
不满意

3
想要切换回“默认”模式的原因显然是因为“开发者”模式太慢。测试页面是开发的重要组成部分,不应放慢速度,也不必使用“生产”模式完全部署所有内容。作为开发人员,我宁愿遭受“默认”模式的不利影响,也不愿被迫在“开发人员”和“生产”之间做出决定
里德


10

作为Windows开发人员,Magento希望在开发人员模式下创建指向静态资产的符号链接,但使用Linux命令而不是Windows命令。这在js和css文件中创建了很多错误。

要切换回默认模式,请打开:-

app / etc / env.php

并更改:-

'MAGE_MODE'=>'开发人员',

回到:-

'MAGE_MODE'=>'默认',

并再次重新部署静态文件。


注意:环境变量可能会覆盖此值。
Elzo Valugi

1
请注意,Magento并不正式支持Windows,因此尝试在Windows上进行开发也会产生其他问题。
ProcessEight


0

**设置模式2.3.x **

现在,Magento允许我们从2.3.x切换回默认模式

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.