संगीतकार के साथ कांटे की आवश्यकता कैसे होती है


172

यहाँ मेरा संगीतकार है। जेसन, मैं गितुब पर एनएफ़एफ़ की कम दूरी की परियोजना का उपयोग करना चाहता हूं

 "repositories": [{
    "type": "package",
    "package": {
        "version": "dev-master",
        "name": "nodge/lessphp",
        "source": {
            "url": "https://github.com/Nodge/lessphp.git",
            "type": "git",
            "reference": "master"
        },
        "autoload": {
            "classmap": ["lessc.inc.php"]
        }
    }
}],
"require": {
    "php": ">=5.3.3",
    "nodge/lessphp": "dev-master"
},

लेकिन जब मैं अद्यतन करता हूं तो मुझे यह त्रुटि होती है:

nodge / lessphp dev-master -> कोई मिलान पैकेज नहीं मिला।

मुझे नहीं पता कि इसे सही ढंग से इस कांटे की आवश्यकता कैसे है ...

कोई सुझाव ?

जवाबों:


228

इसे करने का सबसे आम (और आसान) तरीका वीसीएस रिपॉजिटरी का उपयोग करना है।

आपको बस अपने कांटे को एक भंडार के रूप में जोड़ना है और अपनी कस्टम शाखा को इंगित करने के लिए संस्करण बाधा को अद्यतन करना है। आपके कस्टम शाखा नाम के साथ उपसर्ग होना चाहिए dev-

बगफिक्स ब्रांच में एक बग को ठीक करने के लिए आपको मोनेटेड पैच करने का उदाहरण।

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}

ध्यान दें कि आप अपने बगफिक्स शाखा को निर्दिष्ट करने के अलावा आवश्यकता विवरण को नहीं बदलते हैं। तुम अब भी नदी के ऊपर पैकेज (संदर्भ monolog/monolog,) नहीं अपने व्यक्तिगत कांटा ( igorw/monolog)। आप डॉक्स में विवरण पढ़ सकते हैं


6
इस के लिए काम करने के लिए प्रतीत नहीं होता github.com/Polycademy/purl जिनमें से एक कांटा है github.com/jwage/purl "खजाने":: [{ "type": "VCS", "यूआरएल मैं करने की कोशिश कर रहा है ":" git@github.com: Polycademy / purl.git "}], और" आवश्यकता ": {" jwade / purl ":" dev-master ",}, लेकिन मैं प्राप्त कर रहा हूं: समस्या 1 - अनुरोधित पैकेज wwade / purl किसी भी संस्करण में नहीं मिल सकता है, पैकेज नाम में एक टाइपो हो सकता है।
CMCDragonkai

11
@CMCDragonkai चलाने की कोशिश करें composer show jwade/purl -vकि आपको यह बताना चाहिए कि अगर यह देव-गुरु संस्करण को नजरअंदाज करता है तो यह क्यों करता है।
सेल्देक

4
@seldaek तुमने मुझे बचा लिया! धन्यवाद! (मेरे कांटे को देव-देव कहा जाता था-) पता नहीं था कि नामकरण स्वचालित रूप से था।
मिगेल स्टीवंस

15
"डॉक्स पढ़ें" एक बुरा जवाब है, एक बेहतर जवाब देने के लिए एक ठोस उदाहरण दिया जाएगा
ऑस्करथ

7
व्यक्तिगत कांटे का संदर्भ नहीं देने के बारे में चेतावनी देकर अच्छा लगा। इसने मेरा दिन बचाया, +1
एड्रियन

42

वीसीएस कार्यों का उपयोग करना:

"name": "test/test",
"repositories": [{
    "type": "vcs",
    "url": "http://github.com/Nodge/lessphp"
}],
"require": {
    "leafo/lessphp": "dev-master"
},

लेकिन अगर मुझे इसके लिए एक मॉड्यूल की आवश्यकता होती है composer.json, तो यह काम नहीं करता है। यह मूल परियोजना स्थापित करता है, कांटा नहीं।

उदाहरण

"name": "example/example",
"require": {
    "test/test": "dev-master"
},

मुझे फिर से भंडार का उल्लेख करना चाहिए। क्या यह सामान्य है?


वही यहाँ एक ही समस्या
Aysennoussi

मैन्युअल रूप से "rm -rf" और फिर "कंपोजर अपडेट" का उपयोग करके मॉड्यूल को हटाएं। मेरे लिए यही काम किया।
ह्यूबर्ट पेर्रोन

3
मैंने एक दर्जन कांटे इस्तेमाल किए हैं और यह कभी काम नहीं आया । यहाँ एक काम कर समाधान है: stackoverflow.com/a/27970559/183904
जुलिएन

4
@ जुलिएन, मैंने अभी इस विधि का उपयोग किया है और यह एक आकर्षण की तरह काम करता है ... डॉक्स काफी स्पष्ट हैं, आपको केवल प्रश्न में पैकेज की आवश्यकता होने पर अपने कस्टम ब्रांच के नाम में देव- उपसर्ग लगाना याद रखना चाहिए ।
mTorres 10

2
मेरे लिए काम किया ... लेकिन मैं यह उल्लेख करना चाहता हूं कि मुझे URL के लिए https: // का उपयोग करने की आवश्यकता है।
plong0

33

यदि आपको आपके लिए काम करने के लिए @ उत्तर का जवाब नहीं मिल रहा है, तो सुनिश्चित करें कि आपका कांटा एक अलग शाखा का उपयोग करता है।

उदाहरण के लिए my-bugfix, अपने कांटे पर स्थित शाखा में अपने परिवर्तनों को धक्का दें , dev-अपने शाखा के नाम में उपसर्ग न जोड़े, लेकिन आपके कंपोजर में। आपको इसे जोड़ना होगा। आपकी संगीतकार फ़ाइल दिखेगी:

"repositories":
[
    {
        "type": "vcs",
        "url": "http://github.com/yourname/packageName"
    }
],
"require": {
    "owner/packageName": "dev-my-bugfix"
},

1
यह मेरे लिए सरल और स्पष्ट व्याख्या है! धन्यवाद !
डोमिनिक

1
लेकिन क्या होगा अगर यह किसी और का कांटा है? यहाँ
abbood

इसके अलावा, nameआपके forked repository की composer.jsonफ़ाइल में फ़ील्ड मूल स्वामी के साथ ही रहना चाहिए।
नेक्लिपअल्फ

11

मैंने कई विकल्पों की कोशिश की है, लेकिन इस पोस्ट को प्राप्त करने के बाद मैंने प्रकाश को देखा और यह एकदम सही था।

यह आपको करना है:

1- फोर्क डे रिपॉजिटरी

2- एक शाखा बनाएं और आवश्यक संशोधन करें।

3- रिपोजिटरी लेबल को अपने कंपोजर.जसन में जोड़ें

"repositories": [

        {
            "type": "vcs",
            "url": "https://github.com/user/yourforkname"
        }
    ]

4- आपके प्रोजेक्ट के अंदर कमांड लाइन में आपके कांटे की आवश्यकता इस प्रकार है:

composer require vendor/packagename:dev-branchname

और वोइला !!

आपके पास अपना कांटा संस्करण काम कर रहा है


7

संगीतकार दस्तावेज़ http://getcomposer.org/doc/05-repositories.md#vcs के अनुसार , यह requireआपके मामले में ("nodge / lessphp" ) में मूल रिपॉजिटरी (कांटा नहीं) निर्दिष्ट करने के लिए पर्याप्त है । संगीतकार तब आपका कांटा स्थापित करेगा (विक्रेताओं में कोड देखें)


5

तो, यह 2019 है, और यहां अधिकांश उत्तर पहले से ही सही हैं।

यदि आप अपने आप को हालांकि, ऐसी स्थिति में पाते हैं, जहां आपको अपने कांटे की एक विशेष शाखा (जो आपने बनाई है) की आवश्यकता होती है , तो पहले उपलब्ध संस्करणों / टैग को संगीतकार सूची दें। इससे मेरा काफी समय बच गया।

spatie/laravel-backupपैकेज के साथ एक पूर्ण उदाहरण ।

सबसे पहले, repositoriescomposer.json के लिए कुंजी जोड़ें । अपने कांटे के url के साथ

"repositories": [{
   "type": "vcs",
   "url": "https://github.com/holymp2006/laravel-backup"
 }]

उपलब्ध संस्करण / टैग प्राप्त करें

composer show "spatie/laravel-backup" --all

versionsटर्मिनल आउटपुट में इच्छित संस्करण चुनें , फिर उस संस्करण की आवश्यकता है

composer require spatie/laravel-backup:v5.x-dev

2

मैं आमतौर पर पैकेज परिभाषा में "डिस्ट" नोड जोड़ता हूं। मुझे इस तरह से इसे इस्तेमाल करने में कोई समस्या नहीं हुई।

मुझे याद नहीं है कि मुझे यह ट्रिक कहां से मिली, हालांकि, किसी और स्पष्टीकरण के लिए।

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "version": "dev-master",
                "name": "nodge/lessphp",
                "source": {
                    "url": "https://github.com/Nodge/lessphp.git",
                    "type": "git",
                    "reference": "master"
                },
                "autoload": {
                    "classmap": ["lessc.inc.php"]
                },
                "dist": {
                    "url": "https://github.com/Nodge/lessphp/archive/master.zip",
                    "type": "zip"
                }
            }
        }
    ],
    "require": {
        "nodge/lessphp": "*"
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.