DEV Community

Stefany Repetcki
Stefany Repetcki

Posted on

Diferença entre dependencies, devDependencies e peerDependencies

Você já se questionou qual a diferença entre "dependencies", "devDependencies" ou "peerDependencies" que muitas vezes estão presentes em nosso Package.json?

Muitos programadores ainda não se questionaram sobre esta diferença, e por isso estou aqui para ajudar você a entender de uma vez por todas qual é ela :)

dependencies

dependencies são todas as bibliotecas necessárias para a aplicação poder trabalhar em produção. Caso se queira instalar somente as dependencias de produção pode usar-se npm install --production.

Para gravar uma dependencia como essencial:

npm install pacote --save

devDependencies

devDependencies como podemos adivinhar graças ao seu nome, as bibliotecas em devDependencies são aquelas que você precisa durante o desenvolvimento da aplicação.

Então você encontrará aqui diferentes tipos de bibliotecas, como:
compressores de código

  • bundlers: webpack, gulp, parceljs, ...
  • testes unitários (ex: enzyme, jest)
  • ferramentas de debug
  • babel e todos os seus plugins
  • bibliotecas de formatação (ex: eslint)
  • outras bibliotecas: storybook, react-styleguidist, husky, etc..

Estes não são necessários para a aplicação funcionar, mas sim para desenvolver e /ou testar.

Para gravar uma dependencia como "dev":

npm install pacote --save-dev

peerDependencies

peerDependencies: se você quiser criar e publicar sua própria biblioteca para que possa ser usada como uma dependência, você também pode precisar do peerDependencies. Nesta seção, você pode indicar quais versões de algumas de suas bibliotecas importantes são necessárias.

Aqui estão alguns exemplos de bibliotecas que geralmente colocamos em peerDependencies : react, react-dom, styled-components, etc.

link de instalação do peer

RESUMÃO:

  • dependencies: programas necessários para produção
  • devDependencies: programas usados para desenvolvimento
  • peerDependencies: são úteis apenas se você deseja criar e publicar sua própria biblioteca.

Top comments (0)