Cursos / Informática para Internet / Desenvolvimento Backend / Aula

arrow_back Aula 02 - Gerenciando pacotes e fundamentos do Node.js

Entendendo o package.json e o package-lock.json


Criando múltiplos scripts

O npm permite criar múltiplos scripts. Para este exemplo, vamos criar um novo script chamado "dev" que iniciará o sistema com o nodemon habilitado. Em seguida, podemos alterar o script de start para utilizar o node diretamente, conforme exemplo abaixo:

{
  "name": "aula02",
  "version": "1.0.0",
  "description": "Exemplo simples de uso do NPM",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon index.js",
    "start": "node index.js"
  },   
  "author": "Gustavo Leitão",
  "license": "ISC",
  "dependencies": {
    "random-words": "^1.1.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}

Para executar o script de dev, utilize o seguinte comando:

$ npm run dev

package.json

Como vimos, o package.json armazena todos os metadados do sistema, incluindo as dependências e suas versões. Perceba que as versões possuem três partes, ex: "1.3.4".

O primeiro número (da esquerda para direita) é chamado de major version. Deve ser incrementado quando uma mudança maior é adicionada à biblioteca e que potencialmente causa incompatibilidade com as versões anteriores (ou seja, você precisará fazer alguma adaptação no seu programa).

O segundo número é chamado de minor version e é incrementado sempre que uma nova funcionalidade é disponibilizada na biblioteca sem causar incompatibilidade com as versões anteriores.

Já o último número é chamado de patch version e deve ser incrementado sempre que um ajuste é feito na biblioteca, mas que não incremente nenhuma funcionalidade. Geralmente correções de bugs, melhoria de desempenho, são exemplos de mudanças que alteram apenas o patch version.

Perceba que há um símbolo antes do número da versão no arquivo package.json. Esse símbolo é chamado de modificador e pode assumir alguns valores. Veja dois dos principais:

  • "^" - instala qualquer versão compatível. Permite instalar versões mais recentes com mudança em minor e em patch version.
  • "~" - Significa versão equivalente. Permite instalar versões mais recentes com mudança apenas de patch version.

Há outros modificadores de acesso. A lista completa pode ser acessada em https://nodejs.dev/learn/semantic-versioning-using-npm.

package-lock.json

O package-lock é gerado automaticamente e tem o objetivo de registrar a versão exata que foi instalada. Com isso, caso seja executado o comando de instalação em outro momento ou até mesmo em outro ambiente, a versão registrada no package-lock.json será instalada.

Esse comportamento é importante para manter a consistência de versões em uma equipe de desenvolvimento e também para garantir que a versão utilizada no ambiente de desenvolvimento seja exatamente igual à que será utilizada em produção.


Versão 5.3 - Todos os Direitos reservados