> For the complete documentation index, see [llms.txt](https://uclsanca.gitbook.io/learn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uclsanca.gitbook.io/learn/web-avancado/node-js-1/utilizando-o-npm.md).

# Utilizando o NPM

## Instalando NPM na sua máquina

O NPM, como mencionado no capítulo anterior, é um gerenciador de pacotes. Seu objetivo é facilitar o uso de algumas bibliotecas e frameworks ligados ao NodeJS.

Para instalar o NPM, tudo o que precisa fazer (em linha de comando) é rodar o seguinte comando:

```
sudo apt-get install npm
```

Com isso, a instalação irá acontecer devidamente. Caso o Node tenha sido instalado corretamente, o NPM pode ter sido instalado junto.

## Inicializando um projeto com NPM

Para inicializar o uso do NPM em uma pasta, é só fazer:

```
npm init
```

Logo em seguida, o NPM irá pedir para que você insira algumas informações, mas se deixá-las em branco, como mostrado na imagem abaixo (só ir apertando a tecla Enter ou inserir -y no comando acima), o sistema irá deixar a pasta no padrão.

![](https://552011742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MEJ_IxNzk9of-u9NQeq%2F-MJEVm9owmVOYRyr1JNB%2F-MJEkVMyrKkcn2XXTjta%2Fnpm_init.png?alt=media\&token=47c5911f-0416-43e2-8beb-d034bc4d0ad0)

Dessa forma, o NPM irá preparar sua pasta para documentação (no package.json) e receber os pacotes do ecossistema npm.

## Arquivo package.json

O arquivo package.json é um arquivo chave do projeto. Nele, você vai ver várias configurações associadas ao projeto, como o nome do projeto, sua descrição, os scripts de inicialização do projeto, as dependências (os pacotes instalados no projeto), a licença utilizada e, principalmente, os autores do projeto.

## Instalando pacotes

Para instalar algum pacote do ecossistema do NPM, a maioria dos pacotes podem ser instalados via o comando:

```
npm install <nome_do_pacote>
```

Na imagem a seguir, mostra-se a instalação de um pacote bem conhecido chamado "express":

*OBS: "i" é uma forma reduzido de "install". O NPM irá entender ambos.*

![Instalando um pacote](https://552011742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MEJ_IxNzk9of-u9NQeq%2F-MJEVm9owmVOYRyr1JNB%2F-MJEr95kthCsaLPRtmnt%2Finstalling.png?alt=media\&token=c13b8b59-c0ff-4786-9545-0da203035a66)

![Pacote instalado](https://552011742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MEJ_IxNzk9of-u9NQeq%2F-MJEVm9owmVOYRyr1JNB%2F-MJEt3v_GBGTAFWs2sgF%2Finstalled.png?alt=media\&token=ecfbbb40-c5a8-4f03-8529-abbb5e8bf239)

Caso queira instalar algum pacote globalmente, então:

```
npm install -g <nome_do_pacote>
```

Isso faz com que o pacote possa ser acessível pelo sistema sem precisar instalá-lo em cada repositório/projeto que criar. Diferente de um pacote instalado localmente, em que é só acessível pelo repositório atual.

Caso o pacote não siga esse padrão, é só procurar no site[ https://www.npmjs.com](https://www.npmjs.com), onde existe uma gama de pacotes disponibilizados e a maneira correta de intalá-los.

Os pacotes instalados vão ser colocadas numa pasta chamada node\_modules:

![O pacote instalado na pasta node\_modules](https://552011742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MEJ_IxNzk9of-u9NQeq%2F-MJEVm9owmVOYRyr1JNB%2F-MJEy-H3f2TCLmu8FopN%2Fnode_mod_dir.png?alt=media\&token=e09a4986-24e2-4105-9a91-bd35489e4e60)

Como o package.json é atualizado a cada pacote instalado, caso a pasta node\_modules não esteja dentro da pasta escolhida para o projeto, você só precisa executar:

```
npm install
```

...que todos os pacotes configurados no package.json serão instalados e a pasta node\_modules será criada.

Para desinstalar algum pacote pelo NPM:

```
npm uninstall <nome_do_pacote>
```

Com os comandos mostrados, deseja-se ter total controle dos repositórios em que se utilizam os pacotes do ecossistema NPM.
