github 講座 作曲家とフォークを要求する方法




作曲 初心者 ソフト (5)

ここに私のcomposer.jsonです、私はGithub上のlessphpプロジェクトのNodgeのフォークを使用したい

 "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 - >一致するパッケージが見つかりません。

私はそれが正しくこのフォークを要求する方法を知らない...

助言がありますか ?


Composerのドキュメントhttp://getcomposer.org/doc/05-repositories.md#vcsによると、 require ( "nodge / lessphp"の場合)に元のリポジトリ(フォークではない)を指定すれば十分です。 Composerはあなたのフォークをインストールします(ベンダーのコードを見てください)


私は通常、パッケージ定義に "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": "*"
    }
}

最も一般的な(そしてより簡単な)方法は、VCSリポジトリを使用することです。

フォークをリポジトリとして追加し、カスタム制約を指すようにバージョン制約を更新するだけです。 カスタムブランチ名の前にdev-付ける必要あります。

bugfixブランチのバグを修正するためにmonologをパッチしたと仮定した例:

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

bugfixブランチを指定する以外はrequireステートメントを変更しないことに注意してください。 あなたはまだあなたの個人的なフォーク( igorw/monolog )ではなく 、アップストリームパッケージ( igorw/monolog )を参照します。 ドキュメントの詳細読むことができます


私は多くのオプションを試しましたが、私はこのポストを得た後、私は光を見て、それは完璧に働いた。

これはあなたがしなければならないことです:

1-フォーク・デ・リポジトリ

2-ブランチを作成し、必要な変更を行います。

3 - composer.jsonにリポジトリラベルを追加する

"repositories": [

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

4-プロジェクト内のコマンドラインで、forkを次のようにする必要があります。

composer require vendor/packagename:dev-branchname

そしてVoilá!!

フォークのバージョンが動作しています


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

リポジトリについてもう一度言及する必要があります。 それは普通ですか?





git-fork