ここに私のcomposer.jsonがあります、GithubでのNodgeのlessphpプロジェクトのフォークを使用したいです
"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->一致するパッケージが見つかりません。
このフォークを正しく要求する方法がわかりません...
助言がありますか ?
最も一般的な(そして簡単な)方法は、VCSリポジトリを使用することです。
フォークをリポジトリとして追加し、バージョン制約を更新してカスタムブランチを指すようにするだけです。カスタムブランチ名mustの前に
dev-
を付ける必要があります。
バグ修正ブランチのバグを修正するためにmonologにパッチを適用したと仮定した例:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/igorw/monolog"
}
],
"require": {
"monolog/monolog": "dev-bugfix"
}
}
バグ修正ブランチを指定する場合を除き、requireステートメントを変更しないことに注意してください。上流のパッケージ(monolog/monolog
)を引き続き参照し、notパーソナルフォーク(igorw/monolog
)を参照します。詳細を読むことができます ドキュメント内
VCSの使用は機能します。
"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"
},
リポジトリについて再度言及する必要があります。それは正常ですか?
@Neilimeの回答が機能しない場合は、フォークが別のブランチを使用していることを確認してください。
たとえば、my-bugfix
という名前の分岐のブランチに変更をプッシュします。ブランチ名にdev-
プレフィックスを追加せず、composer.jsonに追加する必要があります。 composerファイルは次のようになります。
"repositories":
[
{
"type": "vcs",
"url": "http://github.com/yourname/packageName"
}
],
"require": {
"owner/packageName": "dev-my-bugfix"
},
Composer documentation http://getcomposer.org/doc/05-repositories.md#vcs によると、元のリポジトリ(フォークではなく)を指定するだけで十分です。 require
(あなたの場合は「nodge/lessphp」)。 Composerはあなたのforkをインストールします(ベンダーのコードを見てください)
私は多くのオプションを試しましたが、この投稿を受け取った後、私は光を見て、完璧に機能しました。
これはあなたがしなければならないことです:
1- Fork deリポジトリ
2-ブランチを作成し、必要な変更を加えます。
3- composer.jsonにリポジトリラベルを追加します
"repositories": [
{
"type": "vcs",
"url": "https://github.com/user/yourforkname"
}
]
4-プロジェクト内のコマンドラインでは、次のようにフォークが必要です。
composer require vendor/packagename:dev-branchname
そしてボイラ!!
フォークバージョンが機能している
したがって、これは2019年であり、ここでの答えのほとんどはすでに正しいです。
ただし、自分で見つけた場合、(作成した)フォークの特定のブランチを必要とする状況では、composerに使用可能なバージョン/タグを最初にリストしてください。これにより、時間を大幅に節約できました。
spatie/laravel-backup
パッケージの完全な例。
最初に、repositories
キーをcomposer.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
通常、パッケージ定義に「dist」ノードを追加します。この方法で問題なく使用できました。
ただし、詳細な説明のために、このトリックをどこから得たのか思い出せません。
{
"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": "*"
}
}