2017-02-17 17 views
9

मैं npm run build वू 2 टेम्पलेट द्वारा अच्छी तरह से आपूर्ति की गई कमांड का उपयोग करके, मेरी वू परियोजनाओं का निर्माण करने के लिए एक बिल्ड सर्वर का उपयोग करता हूं। वू टेम्पलेट पर्यावरण-विशिष्ट डेटा तक पहुंचने की क्षमता भी प्रदान करता है जिसे config निर्देशिका के नीचे फ़ाइलों में कॉन्फ़िगर किया जा सकता है। prod.env.js इत्यादि जैसी चीजें। फिर आप टेम्पलेट मैनुअल में देखे गए process.env.API_PREFIX के माध्यम से इस डेटा तक पहुंच सकते हैं।पर्यावरण स्वतंत्र वू वेबपैक टेम्पलेट का उपयोग कर बनाता है

मैं कोड एक बार, अलग विन्यास (अलग API_PREFIX आदि) का निर्माण तो कई सर्वरों के लिए (के रूप में Dist में उत्पादन द्वारा परिभाषित) एक ही निर्माण की तैनाती है, लेकिन अलग सर्वर का उपयोग करने में सक्षम होना चाहता हूँ। वर्तमान में, process.env संदर्भ वेबपैक कंपाइलर द्वारा बिल्ड समय पर विस्तारित किए गए हैं। इसलिए मुझे हर पर्यावरण के लिए पुनर्निर्माण करना है।

मैं ऐसा करने के कुछ तरीकों के बारे में सोच सकता हूं - स्पष्ट रूप से कॉन्फ़िगरेशन की लोडिंग रनटाइम पर होती है, और यह देखते हुए कि यह ब्राउज़र में चलता है और उसे कुछ फ़ाइल का संदर्भ लेना पड़ता है, इसे होना होगा कुछ स्थिर JSON कॉन्फ़िगरेशन के लिए एक AJAX अनुरोध वेब सर्वर द्वारा अलग से, या इसी तरह से कार्य किया जाता है। लेकिन मुझे यह जानने में दिलचस्पी होगी कि यहां कोई भी व्यक्ति इस आवश्यकता को कैसे संभालेगा।

+1

कुछ चालें हैं, लेकिन आप API_PREFIX को कैसे निर्धारित करते हैं, इस बारे में अधिक जानकारी चाहिए। क्या यह उस डोमेन से संबंधित है जिसमें एप्लिकेशन को एक्सेस किया जा रहा है? क्या आप ठोस उदाहरण दे सकते हैं? – aristidesfl

+0

हां, एपीआई उपसर्ग कॉन्फ़िगरेशन डेटा का एक उदाहरण है जो प्रत्येक वातावरण के लिए विशिष्ट है। यह प्रत्येक तैनाती पर्यावरण के लिए एक अलग डोमेन होगा। उदाहरण के लिए, 'स्टेजिंग' परिनियोजन पर्यावरण के निर्माण में, एपीआई उपसर्ग 'https: // staging-api.mycompany.com' हो सकता है। [यह पर्यावरण के नाम से सिद्धांत में व्युत्पन्न नहीं है, हालांकि।] – amoe

उत्तर

2

आपकी विशिष्ट वास्तुकला को जानने के बिना विशिष्ट सलाह देना मुश्किल है। इसके बजाय मैं कुछ सामान्य विचार छोड़ दूंगा।

जो आप चाहते हैं उसे करने के लिए, आपको शायद उस डोमेन से उपसर्ग प्राप्त करना होगा जिसमें आप फ्रंटेंड की सेवा कर रहे हैं। - उपसर्ग स्वचालित रूप से डोमेन जहां दृश्यपटल में परोसा जाता है से प्राप्त किया जाएगा

  • संबंधित पथ /api/myinformation:

    कुछ चीजें आपको लगता है कि के लिए उपयोग कर सकते हैं, कार्यावधि में window.location का उपयोग कर के अलावा हैं।

  • विकास के दौरान स्थानीय प्रॉक्सी, जब से तुम बैकएंड स्थानीय होस्ट पर https://github.com/vuejs-templates/webpack/blob/master/docs/proxy.md
  • प्रॉक्सी पथ पुनर्लेखन nginx या इसी तरह की पर चलने के लिए नहीं चाहते हो सकता है: यहां तक ​​कि अगर यह अपने विशिष्ट मामले का समाधान नहीं करता https://stackoverflow.com/a/3017720/1445812

, आशा यह आपको उपलब्ध जानकारी का एक विचार देता है।

+0

मेरा प्रश्न वास्तव में एपीआई उपसर्ग के बारे में नहीं है, जो कॉन्फ़िगरेशन के एक टुकड़े का एक आकस्मिक उदाहरण है जिसे मैं निर्माण प्रक्रिया के बाद पैरामीटर बनाना चाहता हूं। मेरे पास कई अन्य चीजें हैं जो तैनाती पर्यावरण के लिए विशिष्ट हैं जो उपसर्ग से संबंधित नहीं हैं। मुझे रनटाइम पर कॉन्फ़िगरेशन चर पढ़ने के लिए एक सामान्य तरीका चाहिए। – amoe

+1

सवाल यह है कि, आप कब और कैसे लिखना चाहते हैं। किस मानदंड के आधार पर। उपयोगकेस के अधिक विशिष्ट विवरण के बिना, अधिक विशिष्ट विचार देने के लिए मुश्किल है। – aristidesfl

+0

मुझे लगता है कि मैंने वेबपैक बाहरी, एक वैश्विक स्क्रिप्ट टैग और 'स्थिर' निर्देशिका के तहत एक फ़ाइल का उपयोग करने का निर्णय लिया है जो 'विंडो' ऑब्जेक्ट पर कॉन्फ़िगरेशन को परिभाषित करता है। इसका रनटाइम पर मूल्यांकन किया जाता है लेकिन फिर भी वेबपैक संदर्भ में लाया जाता है जो सिंक्रोनस दिखाई देता है। – amoe

संबंधित मुद्दे