เมื่อฉันเริ่มโครงการ M2 ใหม่สิ่งแรกที่ฉันจะทำคือติดตั้งคอร์ผ่านทางผู้แต่ง:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
ตอนนี้ฉันสามารถเขียนโมดูลและธีมที่กำหนดเองของฉันapp/codeได้ที่ด้านล่าง ฉันจะเพิ่มโฟลเดอร์ของฉันcomposer.*และapp/codeโฟลเดอร์ทั้งหมดลงใน VCS ของฉัน จนถึงทุกอย่างก็โอเค
สมมติว่าตอนนี้ฉันต้องการใช้เครื่องมือสร้างสำหรับโครงการของฉันสมมติว่า Grunt หรืออึก
ถ้าฉันทำเอง
Gruntfile.jsสิ่งนี้จะถูกเขียนทับโดยmagento/magento2-baseแพ็คเกจเมื่อฉันวิ่งcomposer installหลังจากฉันลอกแบบ repoถ้าฉันกระทำของฉัน
gulpfile.jsฉันไม่สามารถจริงๆกำหนดอ้างอิงของฉันในเพราะมันก็จะถูกเขียนทับโดยpackage.jsonmagento/magento2-baseถ้าผมตัดสินใจที่จะใช้การตั้งค่าฮึดฮัดวีโอไอพีและต้องการปรับแต่งได้โดยการแก้ไขไฟล์ที่อยู่ภายใต้
/dev/tools/grunt(เช่นthemes.js)magento/magento2-baseผมไม่ได้เพราะการเปลี่ยนแปลงของฉันจะถูกเขียนทับโดย
ความเข้าใจของฉันคือคุณไม่สามารถทำอะไรได้มากในรูทเอกสารของคุณ มีวิธีแก้ไขปัญหานี้มากมาย:
- ฉันสามารถเรียกใช้งานได้
git checkout -ทันทีหลังจากการติดตั้งเพื่อรีเซ็ตไฟล์ของฉันเอง - ฉันจะเก็บสร้างไฟล์ของฉันในโฟลเดอร์เฉพาะ
/buildตัวอย่างเช่น - ฉันสามารถใช้เครื่องมือสร้างที่แตกต่างกันเช่น Phing, Ant หรือ Rake (ส่วนหน้าของฉันจะไม่มีความสุขเลย)
- ฉันสามารถแทนที่
magento/magento2-baseด้วยแพ็คเกจแบบกำหนดเองที่มีการแมปแบบกำหนดเองสำหรับไฟล์หลัก (ไม่ดีที่สุด แต่จริงๆแล้วมันเป็นตัวเลือก)
ฉันไม่ชอบตัวเลือกทั้งหมดเหล่านี้เป็นการส่วนตัวดังนั้นฉันจึงอยากทราบว่ามีวิธีที่ต้องการหรือดีกว่าเพื่อให้บรรลุสิ่งที่ฉันพยายามทำ
ทุกคนมีปัญหาเดียวกันหรือไม่ คุณแก้ปัญหาอย่างไร คุณจัดโครงสร้างโครงการภายใต้ VCS อย่างไร
UPDATE
จุดพิเศษที่เกี่ยวข้องกับการตั้งค่าโครงการ ในการทดลองของฉันฉันสังเกตเห็นว่าตัวติดตั้งตัวแต่ง Magento มีการตั้งค่าสถานะสำหรับการแทนที่ไฟล์:
"extra": {
"magento-force": "override"
}
มันได้รับการปฏิบัติภายในเป็นบูลีนถ้าฉันไม่ผิดดังนั้นฉันพยายามตั้งfalseให้ข้ามการเอาชนะ เมื่อฉันเรียกใช้composer installการติดตั้งของฉันล้มเหลวเนื่องจากไฟล์มีอยู่แล้ว โดยทั่วไปถ้าฉันไม่ปล่อยให้วีโอไอพีแทนที่ไฟล์ของฉันฉันจะติดตั้งไม่ได้
ธงชาตินี้มีจุดประสงค์อะไร? เป็นเพียงสมมติให้ฉันตรวจสอบ? มันไม่สมเหตุสมผลสำหรับฉันที่จะซื่อสัตย์ แต่บางทีใครบางคนสามารถส่องแสงในเรื่อง
Gruntfile.js, gulpfile.jsและpackage.jsonปัญหาได้รับการแก้ไข ปัญหาการแก้ไขในคำถามนี้ยังคงมีผลบังคับใช้กับวีโอไอพีรุ่นใหม่รุ่นที่ 2 เมื่อคุณจำเป็นต้องมีการเปลี่ยนแปลงthemes.js, index.phpหรือ.htaccessตัวอย่างเช่น