‫Instrutor: Neste vídeo, vamos dar
‫uma olhada nos dois tipos de pacotes que podemos
‫instalar com o npm e também nos dois tipos de instalação que existem.
‫Portanto, os dois tipos de pacotes
‫que podemos instalar são dependências simples ou dependências de desenvolvimento.
‫Agora, dependências simples ou regulares são simplesmente pacotes que contêm
‫algum código que incluiremos em nosso próprio código.
‫Portanto, código sobre o qual construímos nosso próprio aplicativo, e
‫é por isso que realmente os chamamos de
‫dependências, porque nosso projeto e nosso código dependem deles
‫para funcionar corretamente.
‫Por exemplo, Express, que é, novamente, a
‫estrutura do Node que usaremos
‫mais
‫tarde no curso, será uma dependência.
‫Portanto, vamos instalar nossa primeira dependência apenas para
‫mostrar como ela funciona.
‫E o pacote que vamos instalar se chama Slugify, que é
‫uma pequena ferramenta que podemos
‫usar para fazer URLs mais legíveis a partir de nomes.
‫Por exemplo, como nomes de produtos no caso de
‫nosso exemplo de forma de nó.
‫Portanto, para instalar uma dependência simples no npm,
‫tudo o que precisamos fazer é dizer npm install e,
‫em seguida, o nome do pacote,
‫que é simplesmente Slugify.
‫Nas versões anteriores, você também teria que
‫dizer dash dash save, assim, mas agora isso
‫não é mais necessário.
‫Portanto, se você apenas especificar npm install
‫slugify, ele instalará este pacote como uma dependência regular.
‫E veja o que acontece com nosso pacote. arquivo json assim que a
‫instalação for concluída.
‫Então, vamos clicar em voltar agora e vamos ver o que acontece.
‫E, na verdade, isso foi
‫muito rápido e instalou nosso pacote
‫imediatamente, e então criou este novo campo aqui chamado de
‫dependências, e colocou nossa primeira dependência, Slugify, bem ali.
‫Ele também tem a versão do pacote,
‫mas falaremos um pouco mais sobre isso posteriormente
‫nesta seção.
‫Esta é nossa primeira dependência
‫e, novamente, é apenas uma dependência regular.
‫E usaremos o Slugify no próximo
‫vídeo, apenas para ter uma ideia de como usamos essas dependências
‫de terceiros em nosso código.
‫Mas agora, o que
‫quero mostrar a você é que, além dessas
‫dependências regulares, também temos dependências de desenvolvimento.
‫E geralmente são apenas ferramentas para desenvolvimento, por exemplo,
‫como um empacotador de código como o Webpack,
‫ou uma ferramenta de depuração ou uma biblioteca de teste.
‫Portanto, essas são dependências de desenvolvimento.
‫Eles não são necessários para
‫a produção, portanto, nosso código não depende
‫realmente deles, simplesmente os usamos para desenvolver nossos aplicativos.
‫Então, vamos agora instalar uma dependência dev, que
‫é apenas um nome curto para dependência de desenvolvimento, e
‫a ferramenta que vamos
‫instalar é chamada de nodemon.
‫Então, npm instale o nodemon, assim, e então o que temos que fazer para
‫especificar que esta é uma dependência
‫de desenvolvimento é dizer save dev, e então isso irá adicionar uma
‫entrada a este pacote. json nas
‫dependências de desenvolvimento.
‫Então, vamos realmente dar
‫uma olhada nisso quando a instalação for concluída.
‫O nodemon é uma ferramenta muito boa que nos
‫ajuda a desenvolver aplicativos Node JS, reiniciando automaticamente
‫o aplicativo Node sempre que alteramos alguns arquivos em nosso
‫diretório de trabalho.
‫Portanto, lembre-se de que, no projeto, eu
‫estava fechando o servidor o tempo todo e
‫reiniciando-o toda vez que
‫alterava o código.
‫Mas com esta ferramenta, isso não é mais necessário.
‫Portanto, ele reiniciará automaticamente o servidor cada vez que fizermos
‫uma alteração.
‫Portanto, agora a instalação foi concluída e
‫um novo campo chamado dependências de desenvolvimento foi criado e,
‫é claro, o nodemon foi adicionado a ele.
‫E assim, nosso projeto agora sabe
‫basicamente que dependemos desta ferramenta aqui para desenvolver nosso aplicativo e
‫deste pacote aqui para realmente construir nossa base de código.
‫Portanto, esses são os dois tipos de pacotes.
‫Agora vamos falar também sobre os dois tipos de
‫instalação desses
‫pacotes, porque agora tudo o que fizemos foi
‫instalar esses pacotes localmente, então eles só
‫funcionam neste projeto e podemos realmente ver
‫isso aqui na nossa pasta de
‫projeto porque o
‫npm criou este nova pasta chamada
‫módulos de nó para nós.
‫Possui todas as dependências do nosso projeto.
‫Mas agora você pode perguntar, bem,
‫nós apenas especificamos Slugify e
‫nodemon, então o que todos esses pacotes estão fazendo aqui?
‫Bem, isso é simplesmente porque eles,
‫por sua vez, são dependências de nossas dependências.
‫Se, por exemplo, o Slugify precisa de um desses
‫pacotes, então o npm instalará essas dependências também.
‫E assim terminamos com todas essas dependências aqui
‫em nosso projeto.
‫Então, esses são para módulos locais, Slugify e nodemon, novamente,
‫nós apenas os instalamos
‫localmente em nossa pasta de projeto e eles não
‫vão funcionar em nenhum outro lugar.
‫Mas com o npm, também podemos ter instalações globais, e as instalações
‫globais estarão disponíveis em qualquer lugar, não apenas
‫em nossa pasta de projeto, mas
‫em todas as pastas em toda a sua máquina.
‫Portanto, um pacote deve ser instalado globalmente
‫quando fornece um comando executável que você pode executar a partir
‫da interface de linha de comando.
‫E o nodemon, por exemplo, é uma ferramenta assim.
‫Portanto, eu uso o nodemon em todos os projetos do Node nos
‫quais trabalho e, portanto, instalei o nodemon como uma dependência
‫global, pois dessa forma não preciso instalá-lo cada vez
‫que estou criando um novo projeto.
‫Posso simplesmente usá-lo em um
‫novo projeto porque já está instalado globalmente.
‫Então, vamos agora realmente fazer isso.
‫Limpe o console
‫aqui e instale-o globalmente.
‫Portanto, npm install e, na verdade, há
‫um atalho para instalar.
‫Na verdade, basta escrever i, assim.
‫Normalmente é assim que eu faço.
‫Portanto, npm i nodemon e, em seguida, sinalizar global.
‫Clique em
‫voltar agora, e agora ele está sendo instalado globalmente.
‫Mas, na verdade, ele nos dá esse
‫erro e, se você estiver em um Mac e
‫fez isso assim, também vai
‫dar um erro simplesmente porque você
‫não tem as permissões para instalar este pacote.
‫Se você está em um Mac, ele não funciona, e
‫eu acredito que no Windows deveria funcionar,
‫pelo menos essa é a experiência
‫que eu tenho, mas se você estiver em um
‫Mac, você realmente colocou o sudo na frente dele
‫e depois coloque sua senha basicamente apenas para dar permissão.
‫Bem, no meu caso tenho
‫Touch ID, mas se você não tiver, você pode
‫usar a senha da sua conta de usuário.
‫De qualquer forma, agora isso funciona, e podemos começar a usar
‫o nodemon neste projeto.
‫Então, deixe-me mostrar como funciona.
‫Portanto, antes de executar nosso aplicativo, fizemos assim.
‫Escrevemos o nó e o índice. js.
‫O que eu fiz aqui agora foi, na verdade, um
‫preenchimento automático e acho que não tinha falado
‫com você sobre isso
‫neste momento, então deixe-me ir em frente e deletar isso.
‫Comecei a digitar i aqui e, como não
‫há nenhum outro arquivo que comece com i, agora posso clicar
‫em tab, e
‫ele completará automaticamente o restante do nome
‫do arquivo para mim.
‫Costumávamos fazer assim, clicar em voltar e, sempre
‫que quiséssemos fazer alguma alteração,
‫teríamos que sair assim e reiniciar
‫tudo de novo.
‫Mas isso não é mais o caso, porque agora temos nodemon.
‫Portanto, tudo o que precisamos fazer é, em vez de escrever node,
‫escrever nodemon e então indexar. js.
‫Ok, agora ele está observando todos os arquivos com
‫todas as extensões.
‫Se voltarmos ao nosso arquivo aqui, nem precisamos
‫mudar nada, tudo o que tenho
‫que fazer é salvá-lo e
‫dar uma olhada no que acontece aqui embaixo no console.
‫Vou salvá-lo agora e
‫você verá o reinício devido a alterações.
‫Agora comece novamente, índice de nó. js.
‫Portanto, você vê que,
‫nos bastidores, ele ainda está executando o comando original que
‫costumávamos fazer, portanto, o índice de nó. js, então o nodemon é basicamente
‫apenas um invólucro ao redor do comando do
‫nó simplesmente para tornar
‫nossas vidas um pouco mais fáceis.
‫Esta é uma ferramenta extremamente útil para trabalharmos com o
‫Node e, no restante
‫do curso, sempre estarei usando o nodemon em vez
‫do comando node.
‫E agora, para terminar, há mais uma pequena coisa que
‫eu queria mostrar a vocês aqui.
‫Então, digamos que não instalamos o nodemon globalmente.
‫Bem, como poderíamos usar nossa dependência dev aqui localmente?
‫Portanto, o nodemon local que instalamos.
‫Bem, não poderíamos simplesmente executá-lo a partir da
‫linha de comando porque as dependências locais não funcionam assim.
‫Não podemos simplesmente usá-los imediatamente na linha de comando, mas o
‫que podemos fazer é especificar um script npm e
‫fazemos isso aqui neste campo de script.
‫Quando fizemos o npm nele,
‫ele realmente colocou este script aqui para nós,
‫que é para
‫teste, e então simplesmente disse que não temos nenhum teste especificado.
‫Então, isso é como um espaço reservado para
‫nós agora, que podemos substituir agora por start e,
‫em seguida, por índice nodemon. js.
‫E este nodemon que estou usando
‫aqui será, na verdade,
‫o nodemon vindo das dependências de desenvolvimento.
‫Em vez de escrever o comando aqui na linha
‫de comando como
‫fiz aqui, simplesmente colocarei a mesma coisa em um script npm.
‫O script é chamado de
‫start neste caso, e agora poderemos executá-lo.
‫Então deixe-me terminar este aqui.
‫Então é assim que executamos um script
‫npm, npm run e start e, de fato, ele nos
‫dá o comando aqui nodemon index. js, e agora tudo
‫funciona exatamente da mesma maneira que antes.
‫Direito?
‫E isso não tem
‫nada a ver com o fato
‫de que instalamos o nodemon globalmente antes, ele simplesmente funciona
‫assim porque, novamente, o nodemon é nossa dependência dev bem aqui no script npm.
‫Podemos então escrever
‫algo como uma instrução de interface de linha
‫de comando que vai usar essa dependência
‫local e não a global.
‫Novamente, isso teria funcionado muito
‫bem sem o nodemon instalado globalmente.
‫É assim que você especifica o script npm, e
‫faremos muito mais ao longo deste curso e
‫podemos dar a eles todos os tipos de nomes.
‫Iniciar é uma espécie de padrão para desenvolvimento.
‫Então, para começar,
‫não precisamos nem escrever npm run start, mas
‫escrever npm start é suficiente para
‫acionar esse comando especial.
‫Então, você vê de novo, funciona muito bem assim.
‫Perfeito.
‫Portanto, neste vídeo,
‫você aprendeu a diferença entre dependências regulares e dependências
‫de desenvolvimento, e também aprendeu que
‫pode instalá-las local ou globalmente,
‫ou também pode instalá-las em ambos os lugares, certo?
‫Mas, na verdade, geralmente as dependências
‫globais que instalamos são sempre ferramentas de desenvolvimento
‫porque são as que fazem mais sentido
‫instalar assim, novamente porque geralmente nos fornecem um
‫bom programa de interface de linha de comando.
‫No próximo vídeo, usaremos essa dependência que instalamos aqui em nosso
‫código para que você aprenda
‫realmente como incluir
‫um módulo de terceiros em seu código.