मैं सर्वर साइड कोड Node.js के साथ एक परियोजना और पर काम कर रहा हूँ इतना बड़ा है कि मैं इसे बंद विभाजित करने के लिए एकाधिक फ़ाइलों में चाहते हैं होता जा रहा है के साथ कई जे एस फ़ाइलें सर्वर साइड का प्रबंधन करने के। ऐसा लगता है कि यह उम्र के लिए क्लाइंट-साइड किया गया है, प्रत्येक फ़ाइल के लिए script
टैग डालने के द्वारा विकास किया जाता है और केवल वितरण के लिए सब कुछ एक साथ रखने के लिए "मेक" जैसा होता है। मुझे एहसास है कि सभी सर्वर-साइड कोड को जोड़ने में कोई बात नहीं है इसलिए मैं यह नहीं पूछ रहा हूं कि यह कैसे करें। उपयोग करने के लिए सबसे नज़दीकी चीज़ require()
है, हालांकि यह script
की तरह व्यवहार नहीं करती है, जिसमें ब्राउजर में आवश्यक फाइलें एक सामान्य नेमस्पेस साझा नहीं करती हैं।कैसे Node.js
Shooter जैसी कुछ पुरानी नोड.जेएस परियोजनाओं को देखते हुए, ऐसा लगता है कि यह एक बार मामला नहीं था, या मैं अपने कोड में वास्तव में कुछ याद कर रहा हूं। मेरी आवश्यक फाइलें संकलन समय पर न ही रनिंग समय पर वैश्विक कॉलिंग नेमस्पेस तक नहीं पहुंच सकती हैं। क्या इस के आसपास कोई आसान तरीका है या क्या हमें कॉल करने के दायरे से पूरी तरह से स्वायत्त जेएस फाइलों को पूरी तरह से स्वायत्त बनाने के लिए मजबूर किया गया है?
जानकारी के लिए धन्यवाद, सही के रूप में चिह्नित। मैं आमतौर पर globals == बुराई अवधारणा से सहमत हूं लेकिन ऐसा लगता है कि उनके पास उनकी जगह है। क्या होगा, उदाहरण के लिए, मेरे पास एक मूल संपत्ति है जिसे मैं किसी दिए गए "वर्ग" के लिए सेट करना चाहता हूं जो किसी अन्य मूल्य पर निर्भर करता है? उदाहरण के लिए: 'SomeClass.prototype.baseProp = SomeOtherClass.prototype.prop * 2;' इस मामले में, मैं या तो निर्माता के माध्यम से वस्तु इन्स्टेन्शियशन पर इस सेट करें, या, जैसा कि आप का सुझाव दिया 'global' वस्तु का उपयोग करने के लिए मजबूर कर रहा हूँ । मुझे लगता है कि बाद में सबसे उचित हो सकता है। –
@XHR फिर 'SomeClass' की' SomeOtherClass' पर निर्भरता है और आपको कुछ क्लास.जेएस के अंदर '(कुछऑथ क्लास ") की आवश्यकता है। मेरे पास मेरे कोड में एक वैश्विक चर है। 'global._ = आवश्यकता है (" underscore ") 'क्योंकि मैं इसे _every_ एकल फ़ाइल का उपयोग करता हूं। 'वैश्विक' के लिए यह एकमात्र उपयोग है। – Raynos