web-dev-qa-db-fra.com

Composer peut-il générer le fichier `composer.lock` sans télécharger les packages?

Il existe une commande pour générer le composer.lock à partir d'un composer.json?

Quelque chose de semblable Ruby bundler: $ bundle lock

5
ciaoben

Si vous n'avez pas de compositeur.lock

La réponse est "non", vous devez générer le fichier de verrouillage en utilisant:

composer install

Installation sans composer.lock 

Si vous n'avez jamais exécuté la commande Auparavant et que aucun fichier composer.lock présent , Composer Résout simplement toutes les dépendances répertoriées dans votre fichier composer.json et télécharge la dernière version de leurs fichiers dans le répertoire du fournisseur de votre projet.

Source: getcomposer.org

NB Problème potentiel: Sans le fichier de verrouillage, le compositeur utilisera la dernière version des dépendances.

Si vous avez déjà un composeur.lock

Et compositeur se plaint du désynchronisation (je ne me souviens pas de l'avertissement exact), alors vous pouvez mettre à jour le fichier de verrouillage, mais cela ne fait que mettre à jour les hachages du fichier:

composer update --lock

Du manuel du compositeur:

--lock Ne met à jour que le hachage du fichier de verrouillage pour supprimer l'avertissement indiquant que le fichier de verrouillage est périmé.

5
Duncanmoo

Ce n'est pas possible de créer un fichier de verrouillage sans installer ou mettre à jour, ceci est inhérent à la conception (crédit à Manish Yadav )

Le fichier de verrouillage a pour objectif d’enregistrer les versions exactes installées afin qu’elles puissent être réinstallées. Cela signifie que si vous avez une version spécifiée de 1. * et que votre collègue exécute la mise à jour de composer qui installe 1.2.4, puis valide le fichier composer.lock. Lorsque vous installez Composer, vous obtiendrez également la version 1.2.4, même si 1.3.0 a été publié. Cela garantit que toutes les personnes travaillant sur le projet ont la même version exacte.

Source: Compositeur: Il s'agit de Lock File

1
Sevvlor