Composerには、開発中にのみいくつかの依存関係をロードするオプションがあるため、ツールは本番環境(ライブサーバー上)にインストールされません。これは、(理論的には)テスト、fake-data-tools、デバッガなど、開発でのみ意味のあるスクリプトに非常に便利です。
進む方法はrequire-dev、devで必要なツールを使用してブロックを追加することです。
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
そして(理論的には)これらの依存関係を介してロードします
composer install --dev
問題と質問:
作曲はの振る舞いを変更したinstallとupdate劇的に2013年に、require-dev-dependenciesは現在デフォルトでインストールされている(!)、とcomposer.jsonを作成すること自由に感じrequire-devブロックと実行composer installに再現します。
デプロイする最も受け入れられている方法として、コンポーザーをプッシュすることです。ロック(現在のcomposer設定を保持)composer installしてから本番サーバーでを実行すると、開発コンポーネントもインストールされます。
-dev依存関係をインストールせずにこれをデプロイする正しい方法は何ですか?
注:ここでは、奇妙なComposerデプロイメントを明確にするために、標準的なQ / Aを作成しようとしています。この質問は自由に編集してください。
composer.lock、Gitのレポに絶対に追加すべきではありません。正しいアプローチは、ステージングでcomposerの更新を使用してから、ファイルを本番環境に同期することです(もちろん、すべてが機能する場合)。ステージングは、実稼働環境の正確なコピーでなければなりません。composer.lockの一部である必要があり.gitignoreます。