O NPM é uma das ferramentas utilizadas pelo Node.js na gestão de pacotes. Confira as funcionalidades e como instalá-lo em diferentes plataformas.

Se você trabalha com programação ou tem curiosidade sobre a área, talvez já tenha ouvido falar em NPM, sigla para Node Package Manager, gerenciador de pacotes padrão para Node.js. Atualmente, o NPM é a base do desenvolvimento moderno da web. 

Ele é utilizado como gerenciamento de pacotes, fluxo de trabalho em linguagens de programação e ferramenta para construção de front-ends em aplicativos e websites. Deu para entender um pouco da importância do NPM no mundo da internet, certo? 

Compreender o NPM ou utilizá-lo na prática pode parecer difícil para quem está começando a jornada nesse universo. Por isso, neste artigo, você irá descobrir o que é o NPM, quais são as principais ferramentas e vantagens desse recurso. Vamos lá?

O que é NPM?

Antes de explicarmos o que é NPM Node, precisamos falar sobre o Node.js, um software open-source que possibilita que programadores escrevam códigos em Javascript. A tecnologia foi introduzida pela primeira vez em 2009 por Ryan Dahl, sendo imediatamente reconhecida como “o software mais empolgante no universo do JavaScript atual”.

Ele foi criado para ser um ambiente de servidor para aplicativos. Porém, os desenvolvedores começaram a usá-lo para criar ferramentas para ajudá-los na automação de tarefas. Para resumir, esse é o motivo da popularidade do Node.js e do NPM. 

Ao contrário de tecnologias como PHP, C e Java, a execução das requisições ocorre em single-thread, ou seja, a tarefa é executada do começo ao fim, sem interrupções. Desde 2009, milhares de sistemas foram construídos, e um novo ecossistema de ferramentas baseadas em Node.js surgiu, transformando a cara do desenvolvimento de front-end. 

Agora que você já sabe o que é Node.js, chegou a hora de descobrir o que significa NPM e o que ele tem a ver com isso. Para usar ferramentas e pacotes Node.js, é necessário instalá-los e gerenciá-los. É aqui que entra o NPM. Ele funciona como gerenciador de pacotes do Node.js. 

De modo geral, o NPM permite que desenvolvedores instalem, desinstalem e atualizem dependências em um único comando. O NPM também é um repositório online seguro para a publicação de projetos Node.js de código aberto, como bibliotecas e aplicativos. 

É possível compartilhar pacotes úteis, como lodash e moment, de forma rápida e fácil. A lista de organizações que usam NPM na produção está crescendo constantemente. Atualmente, inclui empresas conhecidas, como Visa, Nike, IKEA, Adobe, Microsoft e Netflix.

Quais são as principais ferramentas do NPM?

O NPM possui duas partes principais: uma ferramenta CLI (interface de linha de comando), para publicação e download de pacotes, e um repositório on-line, que hospeda pacotes JavaScript. Este último (npmjs.com) funciona como um centro de distribuição de encomendas, que recebe produtos dos remetentes (autores de pacotes NPM) e os envia aos destinatários (usuários de pacotes NPM). 

Para facilitar o processo, o centro de distribuição do npmjs.com contrata diversos “trabalhadores” para fazer a “gestão das encomendas”, a ferramenta CLI. Eles são designados como assistentes pessoais para cada cliente individual do npmjs.com. Sendo assim, as dependências são enviadas para os desenvolvedores JavaScript como npm install (remetente → destinatário) e npm publish (destinatário → remetente). 

A ferramenta LCI e o repositório on-line auxiliam desenvolvedores que desejam usar pacotes JavaScript em seus projetos. Existem algumas formas de utilizar os “trabalhadores”, conforme você confere abaixo. 

package.json

Ainda fazendo uma comparação com o centro de distribuição, o pacote json seria a etiqueta de identificação na caixa do produto que está sendo transportado. Cada projeto em JavaScript, seja Node.js ou aplicativo de navegador, pode ser definido como um pacote NPM com suas próprias informações e seu package.json para descrever o projeto.

Scripts

O package.json  funciona como suporte para as scripts, que podem ser definidas para executar ferramentas de linha de comando, instaladas no contexto local do projeto. 

dependências vs devDependências

Os dois têm a forma de objetos de valor-chave, com nomes de bibliotecas NPM, como a chave, e versões formatadas semânticas, como o valor. Todas essas versões exatas do pacote serão documentadas em um package-lock.json.

package-lock.json

Este arquivo relata as versões das dependências utilizadas em uma tarefa JavaScript NPM. Enquanto package.json é um rótulo descritivo genérico, package-lock.json é uma tabela de ingredientes.

Vantagens em utilizar NPM

Como você percebeu, uma das principais vantagens em utilizar o NPM para projetos de desenvolvimento na web é a versatilidade. Além de melhor eficiência e produtividade, os desenvolvedores ganham outros benefícios. Acompanhe abaixo.

Compartilhamento e reutilização de código 

Alguns anos após a criação do NPM, os pacotes de JavaScript eram pouco comuns. Atualmente, existem mais de 1000 módulos disponíveis. Cerca de 97% do código de um aplicativo da web vem do NPM, de acordo com o blog NPJS.org. Um desenvolvedor é responsável apenas pelos 3% finais que tornam seu aplicativo único e útil. 

O tempo economizado por não reinventar o código em milhares de módulos está economizando as horas de trabalho de desenvolvedores ao redor do mundo. O mais bacana é que qualquer desenvolvedor pode disponibilizar seu código JavaScript em bibliotecas. Segundo o NPJS.org, em 2018, 800 mil bibliotecas estavam disponíveis no registro NPM e mais de 10 mil eram publicadas a cada semana.

Possibilidade de upgrade

Caso queira ter acesso a mais ferramentas, você pode se inscrever no NPM Pro para desfrutar de uma experiência de desenvolvimento premium que vem com muitos benefícios, como repositórios privados. Grandes equipes de desenvolvimento trabalhando em projetos críticos para os negócios podem optar pelo NPM Enterprise, que permite desenvolver pacotes internamente que não são compartilhados publicamente.

Gerenciamento

Por meio do NPM, é possível gerenciar dependências locais das ferramentas do projeto instaladas globalmente, versões de código, dependências de código e ferramentas autônomas. É importante ressaltar que o NPM sempre faz a instalação da última versão disponível de um pacote, outras bibliotecas e frameworks que são dependentes dele.

Como utilizá-lo em diferentes plataformas?

O Node.js está disponível para plataformas como Windows, Linux, macOS e outras. Para começar a usar o NPM em seus projetos, você precisará saber como instalar o NPM, ou seja, o Node.js, uma vez que eles são duas faces da mesma moeda. Para isso, você precisará acessar o site oficial do Node.js pelo link: https://nodejs.org/en/download/. Lá, existem instaladores Windows e macOS. 

Print de tela do site Node.js.
Página de downloads – Node.js

Para Linux, você pode instalar o Node.js por meio do gerenciador de pacotes, disponível no link: https://nodejs.org/en/download/package-manager/. Os pacotes da página são mantidos e suportados por “empacotadores” respectivos, em vez da equipe do Node.js. No tópico a seguir, você aprende a fazer a instalação do Node.js em diferentes plataformas.  

Linux

O Linux tem diferentes distribuições, como Debian, Fedora e Ubuntu. Conforme comentado, para instalar o Node.js no Linux, o ideal é fazer o download do gerenciador de pacotes. Porém, atenção: os comandos para a instalação podem ser diferentes nesses sistemas.

Para fazer a instalação do Node.js e do gerenciador NPM no sistema Ubuntu, você deve abrir o terminal de comandos manualmente ou, se preferir, pode usar o atalho Ctrl + Alt + T e colar os comandos a seguir:

sudo apt update

sudo apt install nodejs npm

No Linux, a instalação do NPM não é feita de forma automática, por isso você precisará fazer a instalação com o comando abaixo: 

sudo apt install npm

MacOS

Existem dois tipos de versões do Node.js: suporte de longo prazo (LTS) e atual. Os lançamentos do LTS são suficientes para a maioria dos usuários comuns. Acesse o site oficial do Node.js pelo link: https://nodejs.org/en/download e clique na opção “macOS Installer”, que fará o download do instalador .pkg para Node.js.

O instalador também instalará automaticamente o NPM para você.  Após fazer o download, autentique usando sua senha do macOS para instalar o software. Você pode verificar se Node.js e NPM foram instalados pelo comando: 

node -v

Em seguida, você poderá ver a versão do software que acabou de ser instalada com o comando: 

npm -v

Windows

Acesse o site oficial do Node.js pelo link: https://nodejs.org/en/download  e clique na opção “Windows Installer” para baixar a versão padrão mais recente. O instalador Node.js inclui o gerenciador de pacotes NPM.

Assim que o download do instalador terminar, inicie-o e clique em “Executar”. O assistente de configuração do Node.js irá iniciar. Depois, clique em “Avançar”. O instalador solicitará o local de instalação. Selecione um local e clique em “Avançar” novamente.

O assistente permitirá que você selecione os componentes a serem incluídos ou removidos da instalação. Novamente, a menos que você tenha uma necessidade específica, aceite os padrões clicando em “Avançar”.

Finalmente, clique no botão “Instalar” para executar o instalador. Quando terminar, clique em “Concluir”. Para verificar a instalação, abra um prompt de comando e digite o seguinte:

node -v

O sistema deve exibir a versão Node.js instalada. Você pode fazer o mesmo para o NPM:

npm –v

Agora que você sabe mais sobre o NPM e como utilizá-lo, temos uma última dica: faça parte da comunidade! O NPM Registry gratuito se tornou o centro de compartilhamento de código JavaScript e, com mais de um milhão de pacotes, o maior registro de software do mundo.

Para encontrar uma base completa de tutorial NPM e saber mais sobre esse universo, acesse: https://www.npmjs.com/. Se tiver alguma dúvida, deixe seu comentário!

E não se esqueça de assinar a nossa newsletter para ficar sempre por dentro dos temas que envolvem o mundo da tecnologia!