मैं थोड़ा अलग लेता, लेकिन आपके sed
-shellcript के समान तरीके से।
एक ज्ञात स्थान से कॉन्फ़िग फ़ाइल की सेवा करता है, उदा:
मैं "सादा पाठ कॉन्फ़िग फ़ाइल" है कि आप का उल्लेख करने के विचार, कैसे इस बारे में पसंद ./config
? चूंकि आपका जेएस पहले से ही मौजूदा साइट से लोड हो चुका है, कम से कम वहां आपको एक सापेक्ष पथ पर भरोसा करने में सक्षम होना चाहिए।
चरण 1: डॉकर कंटेनर में शुरू होने वाली शेलस्क्रिप्ट पर्यावरण चर से कॉन्फ़िगर पैरामीटर को सादे टेक्स्ट फ़ाइल में लिखती है और इसे पैक किए गए कोणीय कोड के समान फ़ोल्डर में रखती है।
चरण 2:
$(function() {
$.get('./config')
.then(function(res) {
window.appConfig = res.data;
// your bootstrapping call
angular.bootstrap(....);
});
});
चरण 3:: मुख्य HTML फ़ाइल है कि एप्लिकेशन को लोड करता है में इस तरह की कुछ init कोड है आप अपने कोणीय एप्लिकेशन, उदा वैश्विक चर का उपयोग यदि आप OpaqueToken उपयोग कर रहे हैं:
import { OpaqueToken } from '@angular/core';
const CONFIG_TOKEN = new OpaqueToken('config');
export const THIRDPARTYLIBPROVIDERS = [
{ provide: CONFIG_TOKEN, useValue: window.appConfig }
];
हाँ यह अभी भी एक सा hacky & अपने देव-env में नोड प्रॉक्सी है कि आप की सेवा एनजी-ऐप भी इस तरह के एक config endpoint बेनकाब करने के लिए है के लिए इस्तेमाल करते हैं। इसके अलावा इसे एक अतिरिक्त अनुरोध की आवश्यकता है, लेकिन स्थानीय स्तर पर डेटा को कैश करने के लिए इनिट-कोड को थोड़ा बढ़ाकर आसानी से बचाया जा सकता है (उदाहरण के लिए कि यह डेटा वास्तव में समय के साथ नहीं बदलेगा)।
लेकिन मुझे लगता है कि यह sed
की तुलना में थोड़ा अधिक रखरखाव योग्य है, जिसमें से कुछ फाइलें हैं जिन्हें आप वास्तव में नहीं जानते हैं कि वे कैसे बाहर निकलते हैं।
मुझे बताएं कि आप क्या सोचते हैं!
क्या आप कोणीय-क्ली या कस्टम बिल्ड का उपयोग कर रहे हैं? – Riscie
हमने https://github.com/AngularClass/angular2-webpack-starter/ –
पर आधारित प्रोजेक्ट बनाया है, क्षमा करें, मैं वर्कबैक-स्टार्टर रेपो के साथ काम करने के तरीके पर कुशल नहीं हूं। कोणीय-क्ली जिसे हम उपयोग कर रहे हैं वह विकल्प है जिसे आप वर्णन करते हैं (वातावरण)। – Riscie