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
ます。