‫Instrutor:
‫Nesta aula, vamos falar
‫sobre um monte de outras
‫coisas que você deve saber sobre como
‫trabalhar com pacotes npm, como controle de versão, atualização ou exclusão de
‫pacotes e também algumas outras coisas, então vamos começar.
‫A primeira coisa que
‫quero falar neste vídeo são os números das versões de nossos pacotes.
‫A maioria dos pacotes
‫no npm segue a chamada notação de versão semântica,
‫o que significa que seus números de
‫versão são sempre expressos com esses três números.
‫O primeiro aqui é chamado de versão principal.
‫O segundo é chamado de versão secundária.
‫O terceiro é chamado de versão do patch.
‫Na verdade, esses três números têm um significado.
‫A versão do patch, que é apenas esta última
‫aqui, tem como objetivo apenas corrigir bugs.
‫Digamos que na versão 1. 18, os desenvolvedores encontraram
‫um bug e então o consertaram
‫e lançaram 1. 18 1
‫Em seguida, eles encontraram outro
‫bug e lançaram 1. 18 2 e assim por
‫diante até chegarem a 1. 18 11, que é
‫o número da versão atual.
‫Novamente, este último aqui é apenas para correção de bugs.
‫Depois disso, temos a versão secundária.
‫A versão secundária
‫introduz alguns novos recursos no
‫pacote, mas não inclui alterações importantes.
‫Todas as alterações feitas em um novo número de versão
‫sempre serão compatíveis com versões anteriores.
‫Se um dia a equipe do nodemon, por exemplo,
‫decidir lançar a versão 1. 19, bem, isso
‫incluirá alguns novos recursos, mas
‫não quebrará nosso código.
‫E o mesmo, claro, acontece com este aqui.
‫Então, se algum dia, houver Slugify 1. 4, bem, então
‫nosso código ainda funcionará da mesma forma.
‫Não haverá alterações significativas.
‫Simplesmente haverá algo novo, portanto,
‫alguns novos recursos, que não são apenas correções de bugs.
‫As correções de bugs novamente são para o
‫terceiro, portanto, para a versão
‫do patch, e os novos recursos menores são para a versão secundária.
‫Então, é claro, temos a versão principal,
‫que só é aumentada
‫sempre que é um grande lançamento que pode ter alterações significativas.
‫Por exemplo, se o Slugify 2 vier.
‫Bem, nosso código pode não funcionar mais
‫porque a função slugify que temos aqui, por
‫exemplo, pode ter mudado seu nome ou
‫talvez o parâmetro que ele espera aqui seja diferente ou as
‫opções podem ter mudado, ou algo
‫pode ter mudado que quebrará
‫a versão anterior .
‫Esteja ciente de que quando há uma nova
‫versão, ela geralmente pode afetar o código
‫que você já possui.
‫Por isso, também é
‫importante falar sobre atualização de pacotes.
‫Em nosso pacote. arquivo
‫json, este pequeno símbolo aqui que
‫vem antes do número da versão é o
‫que especifica quais atualizações aceitamos para cada um dos pacotes.
‫Este símbolo aqui, que o npm especifica aqui
‫por padrão, significa que aceitamos correções e versões menores.
‫Agora, como realmente atualizamos os pacotes?
‫Bem, vamos realmente encerrar esse processo aqui.
‫A primeira coisa
‫que podemos fazer é verificar se há algum pacote desatualizado.
‫Escrevemos npm desatualizado e isso deve nos dar uma
‫tabela com todos os
‫pacotes desatualizados.
‫Bem, agora, eles estão todos atualizados, então
‫isso não aconteceu realmente.
‫O que
‫quero mostrar agora é que podemos realmente
‫instalar um determinado pacote com um determinado número de versão.
‫Vamos fazer isso com o Slugify e
‫instalá-lo na versão 1. 0 0
‫Npm install slugify e depois em 1. 0 0
‫Vamos experimentar.
‫Agora, de fato, temos um zero zero.
‫Quando passamos o mouse sobre ele, ele mostra
‫a última versão 1. 3 4, que é o que tínhamos.
‫Mas se agora rodarmos o npm desatualizado, ele
‫deve nos fornecer isso.
‫Vemos que a corrente é 1. 0 0
‫Desejado é 1. 3 4, porque esse
‫é o que aceitamos, porque lembre-se, com
‫isso aqui, aceitamos todos os patches e todas as versões
‫secundárias, mas é claro, também podemos mudar isso.
‫Por exemplo, podemos defini-lo com este símbolo aqui.
‫Isso aceitará apenas lançamentos de patches.
‫Este é um pouco mais seguro.
‫Se executarmos o npm desatualizado novamente, vamos ver
‫o que temos.
‫Agora, o desejado é apenas 1. 0 2,
‫porque, novamente, só aceitamos versões secundárias.
‫Então, 1. 3 4 não
‫é aceito por nós porque, bem,
‫não aceitamos nenhum dos lançamentos
‫menores, então, novamente, apenas lançamentos de patch.
‫Se você fosse fazer o npm update slugify agora, vamos ver o
‫que temos então.
‫Agora estamos em 1. 0 2
‫Você vê
‫que ele mudou novamente para minha configuração de
‫atualização aqui para aceitar versões menores e de patch.
‫Não apenas os lançamentos de patch como tínhamos antes.
‫Se vamos executar isso agora de
‫novo, isso deve nos elevar
‫totalmente para 1. 3 4, como tínhamos antes.
‫Na verdade, aqui vamos nós.
‫Tudo bem, é assim que atualizamos os pacotes.
‫Existem outras configurações que
‫podemos escolher aqui.
‫Podemos dizer, por exemplo, que queremos todas as
‫versões, então se em algum momento houver uma
‫versão dois e se não atualizarmos nossos
‫pacotes, ele irá então elevar
‫automaticamente nossa versão para a versão dois.
‫Este inclui todas as
‫versões, mesmo aquelas com alterações significativas.
‫Mas isso geralmente não é uma boa ideia,
‫então eu geralmente escolho este que é o
‫padrão, ou às vezes até este aqui porque em
‫algum ponto, mesmo que uma versão menor deva simplesmente introduzir
‫novos recursos, mas sem alterações significativas,
‫sabemos que às vezes pode haver bugs que
‫os desenvolvedores não encontraram e, em seguida, esses
‫bugs encontram seu caminho
‫em nosso código e podem quebrar nosso código.
‫Não queremos isso, é claro.
‫A versão mais segura é
‫apenas usar esta para correção de bugs.
‫Na verdade, vamos mantê-lo assim aqui, apenas
‫para fins de demonstração.
‫Isso é o que você precisa
‫saber sobre os números de versão e atualização.
‫Mas é claro que também podemos excluir pacotes.
‫Vamos agora instalar o Express,
‫para que possamos prosseguir e excluí-lo depois disso.
‫Tenho certeza que você pode adivinhar como podemos fazer isso.
‫Isso é muito fácil.
‫Desinstalação do Npm, portanto, na verdade não é chamada de exclusão.
‫É realmente uma desinstalação.
‫Nós instalamos e desinstalamos o Express.
‫Isso irá excluí-lo de nossa pasta de
‫módulos de nó e também de nossas dependências
‫em um pacote. arquivo json.
‫Cada vez que decidimos não usar mais um módulo, bem,
‫devemos sempre ir em frente e removê-lo,
‫ou realmente desinstalá-lo.
‫Agora, para terminar, gostaria de falar um
‫pouco sobre a pasta de módulos de nó.
‫Esta pasta, que contém
‫todas as dependências do nosso projeto.
‫Digamos que você queira compartilhar seu código com
‫alguém ou que, por exemplo, queira
‫começar a trabalhar em um
‫computador e depois passar para o próximo.
‫Você nunca compartilhará essa pasta de módulos de nó porque
‫esse código pode ser facilmente obtido no npm.
‫Não há necessidade de seguir em
‫frente e copiar todo esse código
‫aqui, por exemplo, para um repositório GitHub ou para uma pasta do
‫Dropbox, ou realmente em algum lugar onde você deseja compartilhar
‫seu código, porque esta pasta
‫aqui como você vê tem toneladas de pastas
‫e cada um deles pode ter toneladas de arquivos.
‫De repente, você pode acabar
‫com dezenas ou centenas de milhares de arquivos.
‫Você nunca deve compartilhar esta
‫pasta e nunca fazer check-out em seu repositório GitHub.
‫Digamos que você tenha feito upload deste código
‫para sua conta GitHub sem esses módulos de nó
‫ou colocado em um Dropbox
‫em um computador e baixado em outro.
‫Digamos que agora baixamos este código aqui,
‫portanto, sem módulos de nó.
‫Portanto, excluímos esse agora e
‫acabamos com apenas uma pasta de projeto normal.
‫Como agora recuperamos nossas dependências ou nossa
‫pasta de módulos de nó?
‫Bem, é muito fácil.
‫Tudo o que precisamos fazer é instalar o npm.
‫O que fiz foi ler nosso pacote. arquivo json,
‫leia nossas dependências e baixe
‫tudo de volta para esta pasta, certo.
‫Agora, uma peça importante desse quebra-cabeça é
‫o bloqueio do pacote. arquivo json.
‫Se abrirmos, obteremos uma lista de todas
‫as versões de todos os pacotes que
‫estamos realmente usando.
‫Isso inclui as dependências de nossas dependências.
‫Vamos para o Slugify, por exemplo.
‫Slugify, e aqui vemos que estamos usando a
‫versão 1. 3 4
‫Isso é muito importante porque, se você
‫compartilhar seu código, deseja que o outro desenvolvedor ou
‫até mesmo você use exatamente
‫as mesmas versões de pacote, para que
‫seu código funcione exatamente da mesma maneira para você e
‫para o outro desenvolvedor.
‫Para isso, os números exatos da versão são
‫basicamente gravados em pedra neste pacote
‫de bloqueio. arquivo json.
‫Se você compartilha seu código, não importa
‫se você está usando GitHub ou Dropbox ou algo parecido, sempre
‫compartilhe seu pacote. arquivo json e
‫o bloqueio de pacote. arquivo json
‫porque esses dois arquivos são
‫necessários para o outro desenvolvedor reconstruir basicamente
‫a pasta de módulos de nó.
‫Sim, acho que isso é tudo
‫que você precisa saber sobre versões
‫de pacote, atualização, desinstalação e também compartilhamento de código com
‫pacote npm. json e package-lock. json.
‫Se houver mais alguma coisa que você queira
‫saber, você pode sempre perguntar novamente no curso de perguntas e respostas
‫e então você obterá ajuda lá.