2012-11-09 14 views
36

मैं node_swiz मॉड्यूल का उपयोग कर रहा हूं, जो बदले में सत्यापनकर्ता मॉड्यूल का उपयोग करता है।एनपीएम के माध्यम से स्थापित एक नोड मॉड्यूल को कैसे संपादित करें?

मैं सत्यापनकर्ता मॉड्यूल के लिए परिवर्तन करना चाहते हैं, लेकिन मैं NPM इस्तेमाल किया मॉड्यूल/निर्भरता स्थापित करने के लिए स्थापित करें।

क्या मैं सिर्फ node_modules के अंदर सत्यापनकर्ता मॉड्यूल में परिवर्तन कर सकता हूं, या क्या वह node_modules निर्भरता पुन: निर्मित हो जाएगी और जब मैं उसके आकुको को प्रकाशित करता हूं या अगली बार जब मैं npm इंस्टॉल करता हूं तो नवीनतम संस्करण प्राप्त होता है?

संरचना इस तरह दिखता है:

myNodeApplication 
    - node_modules 
    - swiz 
     - node_modules 
      - validator [this is the library I want to edit] 

मदद के लिए धन्यवाद!

उत्तर

94

आप सीधे फ़ाइल को संपादित कर सकते हैं, लेकिन यह ओवरराइट किया जाएगा जब भी NPM अद्यतन, तो सबसे अच्छा होगा स्रोत के लिए सीधे जाने के लिए है।

परिवर्तन संपूर्ण मॉड्यूल की कार्यप्रणाली को प्रभावित है, और दूसरों के लिए उपयोगी हो सकता है, तो आप GitHub पर मूल स्रोत के लिए योगदान और बदलाव के लिए लग रही है लागू किया जाना कर सकते हैं।

इस मालिकाना कार्यक्षमता कि जरूरत है, और मॉड्यूल के विकास में मदद नहीं करेंगे, तो ऐसा करने के लिए सबसे अच्छी बात यह कांटा GitHub से है और अपने परिवर्तन करें। आप एनपीएम का उपयोग करके सीधे जीथब से आइटम इंस्टॉल कर सकते हैं, और यह विधि आपको मूल स्रोत से अपने कस्टम संस्करण में भविष्य में बदलावों को एकीकृत करने देगी।

GitHub से सीधे स्थापित करने के लिए निम्न आदेश का उपयोग:

npm install https://github.com/<username>/<repository>/tarball/master

+1

धन्यवाद! यही वही है जो मैं जानना चाहता था। इसके अलावा, यह पढ़ दूसरों के लिए ... मैं मॉड्यूल package.json फ़ाइल में मेरी GitHub पर है कि शामिल करने के लिए चाहते थे, और जानकारी के बारे में यहाँ नहीं है: http://stackoverflow.com/a/8306715/1810875 – user1810875

+3

से पहले फोर्किंग मैं इसे स्थानीय प्रणाली में बदल रहा हूं, लेकिन परिवर्तन प्रभावित नहीं होता है। किसी भी जावास्क्रिप्ट फ़ाइल को बदलना जो node_modules/package_name/lib/file_name.js को प्रभावित करता है? – inquisitive

+0

बस एक नोट, सुनिश्चित नहीं है कि कुछ बदल गया है लेकिन व्यक्तिगत रूप से मुझे गिट यूआरएल को गिट के रूप में निर्दिष्ट करना था: //github.com/ /। " – Craig

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