php - vendor - wget install composer




Qual é a diferença entre require e require-dev? (2)

A principal diferença é que o Composer instalará apenas dependências de require-dev para o "pacote raiz" - o diretório no qual você executa a composer install . A documentação descreve isso como:

O pacote raiz é o pacote definido pelo composer.json na raiz do seu projeto. É o principal composer.json que define os requisitos do seu projeto.

… E a documentação do require-dev especifica que é "somente root".

Na prática, isso significa que as dependências require-dev um pacote não são usadas se o pacote estiver sendo instalado como uma dependência para outra coisa (ou seja, ele está instalado na pasta do vendor outro projeto).

Então, se você tem o phpunit na lista require-dev do YourProject , e eu yourproject/ o yourproject/ e execute o composer install no diretório yourproject/ , o Composer irá instalar o phpunit no seu yourproject/vendor/ porque é provável que eu esteja desenvolvendo o YourProject . Como parte do desenvolvimento, provavelmente vou querer rodar o conjunto de testes do phpunit , e para isso eu precisarei do phpunit .

Mas, se eu adicionar o YourProject como uma dependência do MyProject , a instalação do pacote myproject também instalará o pacote yourproject , mas ele não instalará o phpunit .

Você pode substituir esse comportamento com as --dev e --no-dev , mas o comportamento padrão é baseado em saber se o pacote em questão é o pacote raiz .

Esta questão já tem uma resposta aqui:

Sou novo no composer e gostaria de saber a diferença entre require e require-dev . O site do compositor não oferece uma boa explicação sobre a diferença entre esses dois.

A parte que eu não entendo é a Lists packages required for developing this package, or running tests, etc. partir do Composer Official Docs.


Os pacotes require-dev são pacotes que não são necessários para o seu projeto funcionar e não devem ser incluídos na versão de produção do seu projeto.

Normalmente, são pacotes como o phpunit/phpunit que você usaria somente durante o desenvolvimento.





composer-php