ทำไมหนึ่งไม่สามารถเปลี่ยนกลับไปเป็นโหมดเริ่มต้นบน 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

6
เหตุผลหนึ่งคือ: ฉันได้พัฒนาส่วนขยายและลูกค้าของฉันบางคนอาจทำงานในโหมดเริ่มต้น
Kristof ที่ Fooman

คำตอบ:


33

โหมดเริ่มต้นไม่ได้อยู่ที่นี่หรือตรงนั้น

ภาพรวมโหมด

ทีมงานวีโอไอพีต้องการให้คุณใช้โหมดการผลิตบนเว็บไซต์จริงหรือโหมดนักพัฒนาซอฟต์แวร์ของคุณในระหว่างการพัฒนา เหตุผลที่โหมดเริ่มต้นมีอยู่คือมีบางอย่างที่จะทำงานอย่างสมเหตุสมผลเมื่อปรับใช้โดยตรงจากรหัสที่ดาวน์โหลดมาโดยไม่มีการแทรกแซงเพิ่มเติม

ในการรันphp bin/magento deploy:mode:setคุณได้ระบุตัวเองว่ามีความสามารถและไม่จำเป็นต้องใช้โหมดเริ่มต้น เนื่องจากไม่มีเหตุผลที่ต้องกลับไปที่โหมดเริ่มต้น Magento ไม่ได้ให้วิธีการในการทำเช่นนั้น


6
ฉันรู้ว่าฉันควรจะถ่ายภาพนั้น โดยวิธีที่คุณนั่งอยู่บนเก้าอี้ซ้ายของฉัน 5-6 เก้าอี้ :)
Marius

1
จบลงด้วยการสร้างปัญหา: github.com/magento/magento2/issues/4292
Raphael ที่ Digital Pianism

2
เหตุผลที่คุณเป็นหนึ่งในการลงคะแนนเสียงข้างหน้าก็เพราะฉันโหวตคุณ :)
Marius

3
เหตุผลที่มาริอุสอยู่เบื้องหลังคือฉันทำให้เขา
แย่

3
เหตุผลที่ต้องการเปลี่ยนกลับไปใช้โหมด "เริ่มต้น" นั้นชัดเจนเนื่องจากโหมด "นักพัฒนา" ช้าเกินไป การทดสอบหน้าของคุณเป็นส่วนสำคัญของการพัฒนาและไม่ควรทำให้ช้าลงหรือไม่จำเป็นต้องปรับใช้ทุกอย่างอย่างเต็มที่โดยใช้โหมด "การผลิต" ในฐานะที่เป็นนักพัฒนาที่ฉันเลือกที่ค่อนข้างที่จะประสบข้อเสียของโหมดการ "เริ่มต้น" กว่าการถูกบังคับให้ตัดสินใจระหว่าง "นักพัฒนา" และ "การผลิต"
leedch

18

โหมดเริ่มต้นจะอยู่ที่นั่นเพื่อติดตั้ง Magento 2 เท่านั้น
ไม่ควรใช้สำหรับการพัฒนาหรือการผลิต
หลังจากการติดตั้งคุณสามารถสลับไปมาระหว่าง dev และ prod เท่านั้น

ที่มา: Alan Kent @ MagentoImagine2016


จบลงด้วยการสร้างปัญหา: github.com/magento/magento2/issues/4292
Raphael ที่ Digital Pianism

10

ในฐานะผู้พัฒนา windows ในโหมดผู้พัฒนา Magento ต้องการสร้างลิงก์สัญลักษณ์ไปยังสินทรัพย์คงที่ แต่ใช้คำสั่ง Linux และไม่ใช่คำสั่ง windows สิ่งนี้สร้างข้อผิดพลาดจำนวนมากในไฟล์ js และ css

หากต้องการเปลี่ยนกลับเป็นโหมดเริ่มต้นให้เปิด: -

app / etc / env.php

และการเปลี่ยนแปลง: -

'MAGE_MODE' => 'นักพัฒนา'

กลับไปยัง:-

'MAGE_MODE' => 'เริ่มต้น'

และปรับใช้ไฟล์คงที่อีกครั้ง


หมายเหตุ: ตัวแปรสภาพแวดล้อมอาจแทนที่ค่านี้
Elzo Valugi

1
โปรดทราบว่า Magento ไม่สนับสนุน Windows อย่างเป็นทางการดังนั้นการพยายามพัฒนาบน Windows อาจทำให้เกิดปัญหาอื่นเช่นกัน
ProcessEight

1

ฉันวิ่งด้วยปัญหาเดียวกัน แต่การเปลี่ยนมันenv.phpใช้งานได้ด้วยตนเอง


ใช่ฉันรู้ว่าฉันสามารถทำได้โดยตรงฉันแค่สงสัยว่าทำไมมันเป็นไปไม่ได้ผ่านทาง CLI
Raphael ที่ Digital Pianism

0

** ตั้งค่าโหมด 2.3.x **

ตอนนี้วีโอไอพีช่วยให้เราเปลี่ยนกลับไปเป็นโหมดเริ่มต้นจาก 2.3.x

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.