मैं रिएक्ट और वेबपैक का उपयोग कर क्रोम एक्सटेंशन विकसित कर रहा हूं।वेबपैक और प्रोग्रामेटिक रूप से इंजेक्शन सामग्री स्क्रिप्ट
इस प्रोजेक्ट में, विभिन्न मॉड्यूल chrome.tabs.executeScript(null, {file: 'content-script-file.js'})
का उपयोग करके सामग्री स्क्रिप्ट को प्रोग्रामेटिक रूप से इंजेक्ट करेंगे।
यह समस्याग्रस्त हो जाता है क्योंकि मैं सबकुछ बंडल करने के लिए वेबपैक का उपयोग कर रहा हूं। असल में, पृष्ठभूमि स्क्रिप्ट कई मॉड्यूल लोड कर रही है, जो कुछ परिस्थितियों में प्रोग्राम स्क्रिप्ट को प्रोग्रामेटिक रूप से इंजेक्ट करने के लिए कॉन्फ़िगर की गई हैं।
हालांकि, मैं यह नहीं समझ सकता कि इन सामग्री स्क्रिप्ट को बंडल एप्लिकेशन में "पाया" कैसे मिलेगा। उन्हें कभी भी स्पष्ट रूप से आयात नहीं किया जाता है, बस executeScript
कॉल में संदर्भित किया गया है।
उसी समय, सामग्री स्क्रिप्ट प्रतिक्रिया का उपयोग करते हैं, इसलिए उन्हें वेबपैक में babel-loader
से गुज़रना पड़ता है।
कोई विचार?
तो मूल रूप से आपको एक रैपर फ़ंक्शन बनाना होगा जो बेबेल स्क्रिप्ट (तर्कसंगत रूप से एक बहुत बड़ा) इंजेक्ट करता है, फिर वास्तविक सामग्री स्क्रिप्ट (और शायद कोड जो बेबेल को ट्रिगर करता है) ... क्या आपको ओवरहेड डर नहीं है बहुत बड़ा हो? – wOxxOm
@wOxxOm: मैं ईमानदार होने के लिए उस तरह के ब्लोट से बचना चाहता हूं, लेकिन मैं वेबपैक के लिए नया हूं, इसलिए मुझे यकीन नहीं है कि यह रोकने के लिए मेरे लिए क्या कर सकता है। – damd
कुशल दृष्टिकोण प्रीकंपील्ड स्क्रिप्ट को इंजेक्ट करना होगा। मुझे लगता है कि आपको स्क्रिप्ट की सूची को मैन्युअल रूप से प्रीकंपाइल करने के लिए परिभाषित करना होगा, लेकिन मैं वेबपैक पर कोई विशेषज्ञ नहीं हूं। – wOxxOm