github - npm स्थापित और कांटा गिथब रेपो का निर्माण




npm-install git-fork (4)

यह बिलकुल नया सवाल नहीं है, लेकिन मैं अभी कुछ समय के लिए अच्छा देख रहा हूँ और मुझे इसका हल खोजने में परेशानी हो रही है।

मैं अपने कोणीय ऐप के लिए एक मॉड्यूल का उपयोग कर रहा हूं जिसे कोणीय-अनुवाद कहा जाता है। हालाँकि, मुझे स्रोत कोड में कुछ छोटे-छोटे संशोधन करने होंगे, जिससे मैं जो npm install वह सब कुछ काम कर सके, और अब मैं 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, और कुछ मार्कडाउन फाइलें

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

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

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


prepare सही तरीका है

यदि आपके पास स्रोत फ़ाइलों के साथ एक रिपॉजिटरी है, लेकिन इसका उपयोग करने के लिए एक "बिल्ड" कदम आवश्यक है, तो prepare स्क्रिप्ट को उस "पैकेज" से जोड़ना बिल्कुल वैसा ही करता है जैसा आप सभी मामलों में चाहते हैं (जैसे npm 4)।

prepare : दोनों को पहले से ही चलाएं पैकेज पैक किया गया है और प्रकाशित किया गया है, स्थानीय npm install पर बिना किसी तर्क के npm install , और git निर्भरता स्थापित करते समय।

आप अपनी निर्माण निर्भरता को devDependencies निर्भरताओं में भी डाल सकते हैं और उन्हें prepare होने से पहले स्थापित किया जाएगा।

यहाँ मेरा एक पैकेज है जो इस पद्धति का उपयोग करता है।

समस्या .gitignore साथ

इस विकल्प के साथ एक समस्या है जो कई लोगों को मिलती है। एक निर्भरता तैयार करते समय, Npm और यार्न केवल उन फ़ाइलों को रखेंगे जो package.json .json के files अनुभाग में सूचीबद्ध हैं।

कोई यह देख सकता है कि files सभी फ़ाइलों को शामिल करने में चूक करती हैं और सोचती हैं कि वे काम कर रहे हैं। जो आसानी से याद किया जाता है, वह है .npmignore ज्यादातर files निर्देश को ओवरराइड करता है और , अगर .npmignore मौजूद नहीं है, .gitignore इसके बजाय .npmignore का उपयोग किया जाता है।

इसलिए, यदि आपके पास अपनी निर्मित फ़ाइलें हैं .npmignore व्यक्ति की तरह .npmignore , अपनी निर्मित फ़ाइलों को files में सूचीबद्ध न files , और .npmignore फ़ाइल का उपयोग न करें, तो prepare टूटी हुई प्रतीत होगी

यदि आप files को केवल निर्मित फ़ाइलों को शामिल करने के लिए ठीक files हैं या एक खाली .npmignore , तो आप सभी सेट हो जाते हैं।

मूल उत्तर: https://.com/a/57503862/4612476


@ रेनज़िम के उत्कृष्ट उत्तर को बंद करने के लिए, पोस्टइंस्टाल निश्चित रूप से इसके लिए एक वैध विकल्प है।

या तो निम्न में से एक करें:

  1. स्क्रिप्ट के लिए पोस्ट स्थापना तत्व जोड़ने के लिए अपने कांटे हुए रेपो में package.json को अपडेट करें। यहां, संकलित आउटपुट (पसंदीदा) प्राप्त करने के लिए आपको जो कुछ भी आवश्यक है उसे चलाएं।
  2. अपने package.json को अपडेट करें, और एक पोस्ट इंस्टॉलेशन जोड़ें जो नोड_मॉड्यूल्स में आवश्यक निर्देशिका को अपडेट करता है।

यदि आपने किसी अन्य व्यक्ति को रिपॉजिटरी के लिए कांट-छांट की है, तो यह समस्या को स्पष्ट करने के लिए एक मुद्दा उठाने लायक हो सकता है कि उनके पैकेज को GitHub के माध्यम से स्थापित करना काम नहीं करता है क्योंकि यह स्क्रिप्ट बनाने के लिए आवश्यक साधन प्रदान नहीं करता है। वहाँ से, वे या तो एक PR को इस की स्थापना के बाद हल करने के लिए स्वीकार कर सकते हैं, या वे इसे अस्वीकार कर सकते हैं और आप # 2 कर सकते हैं।


बस कमांड npm install git+https://[email protected]/myRepo/angular-translate.git । धन्यवाद।


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

यदि वह सही तरीके से काम नहीं कर रहा है, तो अपने .npmignore फ़ाइल की सामग्री की जाँच करें।

यदि इंस्टॉल कमांड को लंबा समय लगता है तो घबराएं नहीं; git रिपॉजिटरी से इंस्टॉल करना npm रजिस्ट्री से इंस्टॉल करने की तुलना में धीमा है।

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

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

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

npm run build
git add .
git commit
git push

(सुनिश्चित करें कि आपने पहले npm install चलाया है)

आप तब जीथब से स्थापित करने में सक्षम होना चाहिए।

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







npm-publish