को देखते हुएरैपिंग
3 Node.js की आवश्यकता होती है परियोजनाओं मुख्य - फ्रेमवर्क - डेटा संग्रह स्थान
मुख्यNPM लिंक के माध्यम से जुड़े दो अन्य परियोजनाएं हैं।
एक परीक्षण में मैंने एक विधि में आवश्यकताएं लपेट लीं। मैं जुड़ा हुआ परियोजनाओं को हल करने में कुछ समस्याएं मिल गया है (विवरण नीचे देखें)
सरलीकृत कोड इस तरह दिखता है:
module.export.resolve = function(file){
[...]//Some more logik to handle relative pathes
return require(file)
}
यह सबसे स्थितियों में ठीक काम करता है। मैं भी रिश्तेदारों pathes (फोन करने वाले के लिए देख रही है और इस मार्ग के आधार पर pathes लागू)
अब इस परियोजना की रूपरेखा जो परियोजना मुख्य से जुड़ा हुआ है (NPM लिंक) में है के साथ संभाला करने के लिए बाहर काम किया। परियोजना मुख्य में भी परियोजना रिपोजिटरीज जुड़ा हुआ है।
अब परियोजना में मुख्य मेरे पास है:
require('ProjectRepositories/foo') // Works as expected
myRequire.resolve('ProjectRepositories/foo') // Returns MODULE_NOT_FOUND "Cannot find module 'ProjectRepositories/foo'
मुझे लगता है समस्या यह है कि डेटा संग्रह स्थान परियोजना IST फ्रेमवर्क परियोजना में जुड़ा हुआ नहीं है। लेकिन क्या उन्हें जोड़ने से कोई दूसरा तरीका है?
मैं कम निर्भरता रखना पसंद करूंगा। उस पर कोई संकेत?
यह मेरी पूरी संरचना स्पष्ट नहीं है कि आपकी संरचना कैसी दिखती है। क्या आप स्पष्टीकरण दे सकते हैं? इस बीच, क्या आप जानते थे कि आपके पास ['NODE_PATH'] हो सकता है (https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders) env var? – gustavohenke
आप कहते हैं "अपेक्षित काम करता है" लेकिन आप यह नहीं कहते कि यह क्या लौटाता है। तो, यह वही वापस आ सकता है। जो आपने पोस्ट किया है, वह वही करता है, सिवाय इसके कि आपने अतिरिक्त तर्क लिखा है जो वास्तव में आयात की आवश्यकता के लिए गड़बड़ कर सकता है। यदि आप एक समाधान 2 फ़ंक्शन करते हैं जो सीधे 'आवश्यकता (फ़ाइल)' देता है, तो इसे आपके प्रत्यक्ष 'आवश्यकता (' ProjectRepos/foo ')' आमंत्रण के रूप में ठीक से काम करना चाहिए। तो आप शायद निष्कर्ष निकालेंगे कि आपका कस्टम तर्क वास्तव में है जहां त्रुटि झूठ है, मुझे लगता है। – EricG