2016-11-10 12 views
34

का निर्माण यह एक पूरी तरह से नए सवाल नहीं है, लेकिन मैं चारों ओर एक अच्छे के लिए अब जबकि तलाश कर दिया गया है और मैं मुसीबत एक हल हो रही है।NPM स्थापित करने और काँटेदार GitHub रेपो

मैं बुलाया कोणीय-अनुवाद मेरे कोणीय अनुप्रयोग के लिए एक मॉड्यूल का उपयोग कर रहा हूँ। हालांकि, मुझे जिस तरह से काम करना है, उसे पाने के लिए मुझे स्रोत कोड में कुछ छोटे बदलाव करना पड़ता है, और अब मैं npm install पर उन परिवर्तनों को जारी रखना चाहता हूं। एक सहयोगी ने सुझाव दिया कि मैंने सोर्स कोड के रेपो को फोर्क किया है और मेरे फोर्कड रेपो को एक निर्भरता के रूप में इंगित किया है, जिसे मैंने इन तरीकों से आजमाया है, उदाहरण के लिए

npm install https://github.com/myRepo/angular-translate 
npm install https://github.com/myRepo/angular-translate/archive/master.tar.gz 

पहला मुझे इस तरह की कोई निर्देशिका नहीं देता है। बस एक package.json, .npmignore, और कुछ markdown फ़ाइलों

-angular-translate 
    .npmignore 
    .nvmrc 
    CHANGELOG.md 
    package.json 
    etc 

दूसरा npm install मुझे पूरा रेपो देता है, लेकिन फिर मैं जब मैं आदेश npm install angular-translate का उपयोग की तरह एक निर्माण नहीं मिलता है। मैंने प्रीबिलिश स्क्रिप्ट चलाने के कुछ डिक्यूशन को देखा है, लेकिन मुझे यकीन नहीं है कि सभी मॉड्यूल इंस्टॉल करते समय यह कैसे करें। मैं भी NPM रजिस्ट्री करने के लिए अपने खुद के मॉड्यूल के रूप में कांटा प्रकाशित करने की कोशिश की है, लेकिन फिर मुझे कोई निर्माण मिलता है, और मुझे यकीन है कि ऐसा करना सही है नहीं कर रहा हूँ ...

मैं पर मेरी अज्ञानता के लिए क्षमा चाहते विषय। मेरे पास एनपीएम के साथ बहुत अधिक अनुभव नहीं है। इस मुद्दे पर कुछ प्रतिक्रिया प्राप्त करना अच्छा लगेगा। ऐसा लगता है कि पैकेज के स्रोत कोड में संशोधन करने की आवश्यकता होने पर यह एक आम मुद्दा हो सकता है? शायद एक बेहतर समाधान है? आपकी सहायता के लिये पहले से ही धन्यवाद।

उत्तर

38

कोशिश npm install <ghusername>/<repoName>, जहां <ghUsername> अपने GitHub उपयोगकर्ता नाम (@ के बिना) और <repoName> है भंडार का नाम है। इसे सही ढंग से स्थापित करना चाहिए। आप सबसे अधिक संभावना आपके package.json में निर्भरता को बचाने के लिए स्थापित कमांड के साथ --save या --save-dev ध्वज का उपयोग करना चाहते होंगे।

कि सही ढंग से काम नहीं कर रहा है, अपने .npmignore फ़ाइल की सामग्री की जाँच करें। अगर स्थापित आदेश एक लंबा समय लगता

घबराएं नहीं; एक गिट भंडार से स्थापित करना एनपीएम रजिस्ट्री से स्थापित करने से धीमा है।


संपादित करें:

आपका समस्या यह है कि आपके मामले में, dist/ रेपो लिए प्रतिबद्ध नहीं है (क्योंकि यह .gitignore में है) है। वह जगह है जहां वास्तविक कोड रहता है। dist/src/ में फाइलों से बनाया से पहले पैकेज NPM रजिस्ट्री करने के लिए प्रकाशित किया जाता है, लेकिन dist/ रेपो करने के लिए प्रतिबद्ध कभी नहीं किया जाता है।

यह बदसूरत है, लेकिन इस मामले में आप .gitignore से dist/ निकालें और फिर से चलाने के लिए होगा:

फिर आप में सक्षम होना चाहिए (कि आप npm install पहले समाप्त हो गया है सुनिश्चित करें)

npm run build 
git add . 
git commit 
git push 

जिथूब से स्थापित करें।

postinstall स्क्रिप्ट का उपयोग करके ऐसा करने का एक और तरीका हो सकता है, लेकिन मुझे यकीन नहीं है कि यह संभव है; मैंने कभी कोशिश नहीं की है।

+0

उत्तर के लिए धन्यवाद, रयान। कोशिश कीजिए, लेकिन मुझे 1 एनपीएम इंस्टॉल के समान परिणाम मिला। मैंने फिर .npmignore फ़ाइल को हटाने का प्रयास किया और मुझे दूसरा परिणाम मिलता है, जैसा कि दूसरे परिणाम के समान है। समस्या अभी भी बनी हुई है कि निर्माण नहीं हो रहा है। – hughesjmh

+0

@ ह्यूजेसज्म अजीब। वास्तविक भंडार यूआरएल क्या है? मैं इसे खुद कोशिश करना चाहता हूं। – RyanZim

+0

ठीक है, अब मैं देखता हूं। मैंने अपना जवाब संपादित किया। – RyanZim

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