Besteci ile çatal nasıl gerekir


172

işte bestecim.json, Godub'da Nodge'nin lessphp projesinin çatalını kullanmak istiyorum

 "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"
},

Ancak güncelleme yaptığımda bu hatayı aldım:

nodge / lessphp dev-master -> eşleşen paket bulunamadı.

Bu çatalı nasıl doğru bir şekilde isteyeceğimi bilmiyorum ...

Baska öneri ?

Yanıtlar:


228

Bunu yapmanın en yaygın (ve daha kolay) yolu bir VCS deposu kullanmaktır.

Yapmanız gereken tek şey çatalınızı depo olarak eklemek ve sürüm kısıtlamasını özel dalınızı gösterecek şekilde güncellemektir. Özel şube adınızın önüne öneki gelmelidirdev- .

Hata düzeltme dalındaki bir hatayı düzeltmek için monolog eklediğinizi varsayalım:

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

Hata düzeltme dalınızı belirtmek dışında, zorunlu ifadeyi değiştirmediğinizi unutmayın. Kişisel çatalınıza ( ) değil , yukarı akış paketine ( monolog/monolog) hala başvuruyorsunuz . Ayrıntıları dokümanlardan okuyabilirsinizigorw/monolog


6
Bu github.com/jwage/purl bir çatal olan github.com/Polycademy/purl için çalışmıyor gibi görünüyor : "depolar": [{"type": "vcs", "url ":" git@github.com: Polycademy / purl.git "}] ve" gerektirir ": {" jwade / purl ":" dev-master ",}, Ama devam ediyorum: Sorun 1 - İstenen paket jwade / purl hiçbir sürümde bulunamadı, paket adında bir yazım hatası olabilir.
CMCDragonkai

11
@CMCDragonkai çalıştırmayı deneyin, composer show jwade/purl -vneden dev-master sürümünü görmezden geldiğini söylemelidir.
Seldaek

4
@ seldaek beni kurtardın! teşekkür ederim! (Çatalım dev-dev- olarak adlandırıldı.) Adlandırmanın otomatik olduğunu bilmiyordum.
Miguel Stevens

15
"Dokümanları oku" kötü bir cevaptır, daha iyi bir cevap somut bir örnek vermek olacaktır
oskarth

7
Kişisel çatal referans değil uyarmak güzel. Bu benim günümü kurtardı, +1
edrian

42

VCS kullanımı şu şekilde çalışır:

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

Ama composer.jsonbuna sahip bir modüle ihtiyacım olursa işe yaramıyor. Çatal değil orijinal projeyi kurar.

Misal

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

Depodan tekrar bahsetmeliyim. Bu normal mi?


burada aynı sorun
Aysennoussi

"Rm -rf" ve ardından "besteci güncellemesi" kullanarak modülü manuel olarak silin. Bu benim için çalıştı.
Hubert Perron

3
Bir düzine çatal kullandım ve bu hiç işe yaramadı . İşte çalışan bir çözüm: stackoverflow.com/a/27970559/183904
Julien

4
... @Julien, sadece bu yöntemi kullandım ve bir cazibe gibi çalıştı docs oldukça açık, sadece koymak unutmamalıyız dev- söz konusu paketi gerektiren yaparken özel şube adına önek.
mTorres

2
Benim için çalıştı ... ama URL için https: // kullanmam gerektiğinden bahsetmek istiyorum.
plong0

33

Sizin için çalışmak için @Neilime yanıtı alamıyorsanız, çatalınızın farklı bir dal kullandığından emin olun.

Örnek olarak adlandırılan çatalını bir dalına değişiklikleri itmek için my-bugfixilave yok dev-şube adına önek ancak composer.json içinde bunu eklemek zorunda. Besteci dosyanız şöyle görünecektir:

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

1
Bu benim için ustaca ve açık bir açıklama! Teşekkür ederim !
Dominik

1
ama ya başka birinin çatalıysa? Buradaki
abbood

Ayrıca, nameçatallı deponuzun composer.jsondosyasındaki alanın orijinal sahibiyle aynı kalması gerekir.
NecipAllef

11

Birçok seçeneği denedim ama bu yazıyı aldıktan sonra ışığı gördüm ve mükemmel çalıştı.

Yapmanız gerekenler:

1- Çatal deposu

2- Şube oluşturun ve gerekli değişiklikleri yapın.

3- Depo etiketini bestecinize ekleyin. Json

"repositories": [

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

4- Projenizin içindeki komut satırında çatalınıza şu şekilde ihtiyaç duyulur:

composer require vendor/packagename:dev-branchname

Ve Voilá !!

Çatal versiyonunuz çalışıyor



5

Yani, bu 2019 ve buradaki cevapların çoğu zaten doğru.

Ancak kendinizi bulursanız , çatalınızın belirli bir dalına (oluşturduğunuz) ihtiyaç duyduğunuz bir durumda , önce bestecinin mevcut sürümleri / etiketleri listelemesini sağlayın. Bu bana çok zaman kazandırdı.

spatie/laravel-backupPakete sahip tam bir örnek .

İlk olarak, repositoriescomposer.json anahtarını ekleyin . Çatalınızın url'si ile

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

Kullanılabilir sürümleri / etiketleri alma

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

versionsTerminal çıkışında istediğiniz sürümü seçin , ardından bu sürümü isteyin

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

2

Genellikle paket tanımına "dist" düğümü eklerim. Hiç bu şekilde kullanırken sorun yaşamadım.

Bununla birlikte, daha fazla açıklama için bu numarayı nereden aldığımı hatırlayamıyorum.

{
    "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": "*"
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.