जब मैं एक नया M2 प्रोजेक्ट शुरू करता हूं, तो पहली चीज जो मैं करता हूं, वह है संगीतकार के माध्यम से कोर इंस्टॉल करना:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
मैं अब अपने कस्टम मॉड्यूल (एस) और थीम (एस) के तहत लिख सकता हूं app/code
। फिर मैं अपने composer.*
और पूरे app/code
फ़ोल्डर को अपने VCS में जोड़ दूंगा । अब तक सब ठीक है।
मान लीजिए कि अब मैं अपने प्रोजेक्ट के लिए कुछ बिल्ड टूल्स का उपयोग करना चाहता हूं, आइए ग्रंट या गल्प कहते हैं।
यदि मैं अपना खुद का अपराध करता हूं
Gruntfile.js
,magento/magento2-base
तो जब मैंcomposer install
रेपो क्लोन करता हूं , तो यह पैकेज द्वारा ओवरराइट किया जाएगा ।यदि मैं अपना वचन देता हूं
gulpfile.js
, तो मैं वास्तव में अपनी निर्भरता को एक में परिभाषित नहीं कर सकताpackage.json
, क्योंकि यह भी अधिलेखित हो जाएगाmagento/magento2-base
।अगर मैं Magento के ग्रंट सेटअप का उपयोग करने का निर्णय लेता हूं और फ़ाइलों को संपादित करके इसे अनुकूलित करना चाहता हूं
/dev/tools/grunt
(उदाहरण के लिएthemes.js
), तो मैं नहीं कर सकता क्योंकि मेरे बदलावों को अधिलेखित कर दिया जाएगाmagento/magento2-base
।
मेरी समझ यह है कि आप वास्तव में अपने दस्तावेज़ रूट में बहुत कुछ नहीं कर सकते। इस समस्या के बहुत सारे समाधान हैं:
- मैं
git checkout -
अपनी फ़ाइलों को रीसेट करने के लिए स्थापना के बाद एक सही चला सकता हूं - मैं अपनी निर्मित फ़ाइलों को एक समर्पित फ़ोल्डर में संग्रहीत कर सकता हूं,
/build
उदाहरण के लिए - मैं एक अलग बिल्ड टूल का उपयोग कर सकता था, जैसे कि फ़िंग, एंट, या रेक (मेरे फ्रंटेंड देवता हालांकि इतने खुश नहीं होंगे)
- मैं
magento/magento2-base
एक कस्टम पैकेज के साथ बदल सकता हूं जिसमें कोर फ़ाइलों के लिए एक कस्टम मैपिंग है (वास्तव में इष्टतम नहीं है लेकिन हे, यह एक विकल्प है)
मैं व्यक्तिगत रूप से इन सभी विकल्पों को नापसंद करता हूं, इसलिए मैं जानना चाहूंगा कि क्या मैं जो करने की कोशिश कर रहा हूं उसे प्राप्त करने के लिए एक पसंदीदा या बेहतर तरीका है।
क्या किसी को भी यही समस्या है? आपने इसे कैसे ठीक किया? आप वीसीएस के तहत अपने प्रोजेक्ट को कैसे तैयार करते हैं?
अपडेट करें
प्रोजेक्ट सेटअप से संबंधित एक अतिरिक्त बिंदु। अपने प्रयोगों में मैंने देखा कि मैगेंटो कंपोजर इंस्टॉलर के पास फाइल ओवरराइड करने के लिए एक झंडा है:
"extra": {
"magento-force": "override"
}
यह आंतरिक रूप से एक बूलियन के रूप में व्यवहार किया जाता है यदि मुझे गलत नहीं लगता है, तो मैंने इसे false
ओवरराइडिंग को छोड़ने के लिए सेट करने का प्रयास किया । जब मैं composer install
अपना इंस्टॉलेशन चलाता हूं तो फ़ाइल पहले से मौजूद होने के कारण विफल हो जाता है। मूल रूप से, अगर मैंने Magento को अपनी फ़ाइलों को ओवरराइड नहीं करने दिया, तो मैं इसे स्थापित नहीं कर सकता।
इस ध्वज का उद्देश्य क्या है? क्या यह केवल मेरे लिए जाँच करने के लिए माना जाता है? मेरे लिए ईमानदार होने का कोई मतलब नहीं है, लेकिन हो सकता है कि कोई व्यक्ति इस विषय पर कुछ प्रकाश डाल सके।
Gruntfile.js
, gulpfile.js
और package.json
समस्या हल हो गई है। इस प्रश्न में संबोधित समस्या अभी भी नए Magento के 2 संस्करणों पर लागू होती है जब आपको बदलने की आवश्यकता होती है themes.js
, index.php
या .htaccess
उदाहरण के लिए।