Gabriel / Ramos

⟨ pintor de pixel ⟩

  • Blog
  • Maneiras incomuns de instalar um pacote NPM

Maneiras incomuns de instalar um pacote NPM

Alguma delas ainda pode te ajudar em algum projeto

4 min. de leitura

Foto por Edu Grande

É comum instalar pacotes e dependências com as opções mais comuns: usando -g ou --global para instalar um pacote globalmente, --save ou -s para dependências que devem ser utilizadas em ambiente de produção (dependencies) e --save-dev ou -D para dependências que só devem ser instaladas em ambiente de desenvolvimento (devDependencies). Talvez você até já tenha manipulado outros tipos de dependências (como peerDependencies).

No entanto, existem algumas outras formas de instalar um pacote que podem ser úteis para seu projeto. Sejam elas relacionadas ao registro (ou registry) do NPM ou não. Algumas delas podem te ajudar em ambientes de produção e outras podem facilitar seu fluxo de desenvolvimento local.

Instalando via Git/Github

Instalar um pacote NPM via Git/Github é possível, caso você não tenha uma biblioteca ou algum projeto publicado e queira instalar como uma dependência.

Para fazer isso, basta executar o conhecido npm install ou npm i e informar nome-de-usuario/repositorio do seu pacote npm.

Ou seja, imaginando um projeto como https://github.com/gabrieluizramos/hooks, basta executar:

npm i gabrieluizramos/hooks

Que isso instalará o projeto como um pacote NPM para você utilizar.

Após instalar dessa forma, você verá que seu package.json possuirá as informações do pacote corretamente:

{
  "dependencies": {
    "hooks": "github:gabrieluizramos/hooks",
  }
}

Você também pode instalar informando a url do git diretamente, como:

npm i https://github.com/gabrieluizramos/hooks.git

Isso também funciona perfeitamente! No entanto, agora seu package.json apontará para essa URL:

{
  "dependencies": {
    "hooks": "git+https://github.com/gabrieluizramos/hooks.git",
  }
}

Talvez você já conheça essa maneira e até já tenha utilizado. Possui algum código que quer reutilizar em outro projeto? Talvez npm link funcione bem.

Vamos imaginar que você está desenvolvendo o projeto-super-secreto e fez uma biblioteca chamada lib-ultra-secreta.

Na pasta da sua lib-ultra-secreta, você pode executar:

npm link

Esse comando criará um link simbólico (ou symlink) do seu projeto NPM (no caso, a lib-ultra-secreta) nas suas dependências globais.

Feito isso, basta ir no seu projeto-super-secreto e executar:

npm link lib-ultra-secreta

Isso irá "apontar" o pacote lib-ultra-secreta do seu projeto, para o link simbólico criado globalmente na sua máquina. Bacana, não?

Só não se esqueça de remover esses links todos ao finalizar o desenvolvimento.

Para fazer isso, na sua lib-ultra-secreta execute:

npm unlink

E no seu projeto-super-secreto, respectivamente:

npm unlink lib-ultra-secreta

Instalando localmente via file://

Tive que utilizar essa maneira recentemente. Bem parecido com o processo utilizando npm link.

No cenário acima, poderíamos estar no projeto-super-secreto e executar o comando:

npm i ../caminho/da/lib-ultra-secreta

Isso também instalaria o pacote mas, dessa vez, utilizando o protocolo file. Igual quando abrimos um arquivo no navegador e acessamos utilizando esse mesmo protocolo, lembra?

Instalando localmente com Verdaccio

A última opção e provavelmente a mais robusta é utilizando Verdaccio.

O que o Verdaccio faz é, basicamente, criar um registro do NPM de forma privada localmente. Dessa forma, você consegue publicar e instalar pacotes apontando para esse registro local.

Você precisar instalá-lo de forma global:

npm i -g verdaccio

Após isso, é só executar:

verdaccio

E um processo iniciará o registro local e deverá ficar rodando. Você deverá deixar essa janela do terminal aberta.

Acesse o painel do Verdaccio através da porta 4873 localmente (localhost:4873) e siga algumas pequenas configurações (para realizar login). Essa etapa é importante para que você possa configurar seu projeto para publicar/instalar algum pacote utilizando esse registro privado.

Para adicionar o registro localmente, é só rodar:

npm adduser --registry http://localhost:4873

Com isso, indicar um usuário/senha para esse registro. Com isso, tudo já estará configurado. Para publicar algum projeto no registro do Verdaccio, basta executar o publish padrão informando a URL:

npm publish --registry http://localhost:4873

E para instalar, também:

npm i lib-ultra-secreta --registry http://localhost:4873

É isso aí! 📦

Particularmente utilizo bastante o npm link, já usei o Verdaccio e a instalação via git algumas vezes e, recentemente, utilizei o link através do protocolo file:// e funcinou bem também.

Espero que alguma dessas diferentes formas de instalar um pacote possa te ajudar em algum projeto por aí.


Compartilhe