155 votes

Quelle est la différence entre les sections require et require-dev dans composer.json?

Je commence à utiliser composer, je sais si peu de choses à ce sujet et j'ai une petite expérience dans le développement d'applications web.

Je viens de parcourir le tutoriel de Nettuts+, donc j'ai des questions basiques sur composer.

{
  "require": {
    "laravel/framework": "4.0.*",
    "way/generators": "dev-master",
    "twitter/bootstrap": "dev-master",
    "conarwelsh/mustache-l4": "dev-master"
  },
  "require-dev": {
    "phpunit/phpunit": "3.7.*",
    "mockery/mockery": "0.7.*"
  },
  "autoload": {
    "classmap": [
      "app/commands",
      "app/controllers",
      "app/models",
      "app/database/migrations",
      "app/database/seeds",
      "app/tests/TestCase.php"
    ]
  },
  "scripts": {
    "post-update-cmd": "php artisan optimize"
  },
  "minimum-stability": "dev"
}
  1. Tout ce qui apparaît dans la partie "require-dev" ne sera téléchargé et installé qu'avec composer install --dev ?
  2. J'ai lu une partie de la documentation de composer mais je ne comprends toujours pas pourquoi nous avons la partie "require-dev" ? Est-ce parce que nous voulons obtenir une version spécifique du package plutôt que de toujours obtenir la dernière version stable ?

1voto

Orkan Points 36

Notez le require-dev (root-only) !

ce qui signifie que la section require-dev est uniquement valide lorsque votre package est la racine de l'ensemble du projet. C'est-à-dire si vous exécutez composer update depuis le dossier de votre package.

Si vous développez un plugin pour un projet principal, qui possède son propre composer.json, alors votre section require-dev sera complètement ignorée ! Si vous avez besoin de vos dépendances de développement, vous devez déplacer votre require-dev vers le composer.json dans le projet principal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X