2017-08-24 18 views
0

私のLaravel 5.4 composer.jsonファイルに私のカスタムパッケージが自動ロードされています。このパッケージは公開されておらず、ローカルにロードされていることに注意してください。作者がローカルパッケージ依存関係をインストールしていない

"autoload": { 
    "classmap": [ 
     "database/seeds", 
     "database/factories" 
    ], 
    "psr-4": { 
     "App\\": "app/", 
     "Vendor\\Module\\": "packages/vendor/module/src" 
    } 
}, 

そして、私はが作曲ルートLaravelディレクトリからをインストールし実行すると、その後の私のパッケージcomposer.jsonファイルで、私は、しかし

{ 
    "name": "vendor/module", 
    "description": "A custom package", 
    "version": "1.0.0", 
    "type": "project", 
    "authors": [ 
    ], 
    "minimum-stability": "dev", 
    "require": { 
     "laravelcollective/html": "^5.4.0" 
    } 
} 

を以下しているが、それは決してlaravelcollectiveをピックアップしていない/ HTML私が必要とするパッケージ。

公開されていないローカルパッケージに依存関係を読み込む方法はありますか?

+0

あなたは作曲家の更新を試しましたか? –

+0

あなたは既にcomposer.lockファイルをお持ちですか?あなたがコンポーザーをインストールすると、composer.lockファイルが依存関係を引き出すために使用されます。あなたが作曲家の更新が必要なような音ですか?実際、composer.jsonファイルで何かを変更するたびに、コンポーザーの更新が必要です。 – gview

+0

これは間違いなく、ルートアプリケーションにはすでにcomposer.lockファイルがあります。ロックファイルを削除して、コンポーザーアップデートをもう一度実行する必要がありますか? –

答えて

1

私はソリューションを見つけたと思っていますが、それは私のために働いているローカルパッケージ開発にとって最良の方法ではないかもしれません。私は、次およびアプリケーションのルートから作曲更新を実行している追加のルートcomposer.jsonファイルで

は、今のパッケージを拾うように見える、それは依存関係だとの主なベンダーのディレクトリにすべてのものをインストールしますルートアプリケーション。

"repositories": [ 
    { 
     "type": "path", 
     "url": "packages/vendor/module" 
    } 
], 
"require-dev": { 
    "fzaninotto/faker": "~1.4", 
    "mockery/mockery": "0.9.*", 
    "phpunit/phpunit": "~5.7", 
    "vendor/module": "1.0.*" 
}, 
"autoload": { 
    "classmap": [ 
     "database/seeds", 
     "database/factories" 
    ], 
    "psr-4": { 
     "App\\": "app/", 
     "Vendor\\Module\\": "packages/vendor/module/src" 
    } 
}, 

この方法の良いところは、このようにあなたがパッケージディレクトリ内の更新情報を書き込むために続けることができ、変更はなく、ローカルにコミットすることの影響かかりますが、それが唯一のカスタムパッケージ用のシンボリックリンクを作成していますg30リポジトリをvcsに設定した場合は、composer.jsonのリポジトリフィールドに入力します。

私はまた、バージョン制約を通過するようにそうあなたが作曲を実行するときに、パッケージが最小バージョン要件を満たしていないという警告になるだろう、必要-devのをフィールドにバージョン番号を指定する必要がありました。

関連する問題