Komposer memiliki opsi untuk memuat beberapa dependensi hanya saat sedang dalam pengembangan, sehingga alat tidak akan diinstal dalam produksi (pada server langsung). Ini (secara teori) sangat berguna untuk skrip yang hanya masuk akal dalam pengembangan, seperti tes, alat data palsu, debugger, dll.
Cara untuk pergi adalah menambahkan require-dev
blok tambahan dengan alat yang Anda butuhkan di dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
dan kemudian (secara teoritis) memuat dependensi ini melalui
composer install --dev
Masalah & pertanyaan:
Komposer telah mengubah perilaku install
dan update
secara dramatis pada tahun 2013, require-dev
-dependensi sekarang diinstal secara default (!), Jangan ragu untuk membuat komposer. Json dengan require-dev
blok dan melakukan composer install
mereproduksi.
Sebagai cara yang paling diterima untuk menyebarkan adalah dengan mendorong komposer. mengunci (yang menahan pengaturan komposer Anda saat ini) dan kemudian melakukan composer install
pada server produksi, ini juga akan menginstal hal pengembangan.
Apa cara yang benar untuk menggunakan ini tanpa menginstal dependensi -ev?
Catatan: Saya mencoba membuat Tanya Jawab kan di sini untuk memperjelas penyebaran Komposer yang aneh. Jangan ragu untuk mengedit pertanyaan ini.
composer.lock
tidak boleh ditambahkan ke repo Git, tidak pernah. Pendekatan yang tepat adalah dengan menggunakan pembaruan komposer pada pementasan dan kemudian menyinkronkan file menjadi produksi (jika semuanya berfungsi, tentu saja). Pementasan harus merupakan salinan tepat dari lingkungan produksi. composer.lock
harus menjadi bagian dari .gitignore
.