เมื่อฉันเริ่มโครงการ 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.json
magento/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
ตัวอย่างเช่น