Npm Link | Npm
- Npm Link | Npm
O que é o npm link?
O comando npm link é uma funcionalidade do npm (Node Package Manager) que permite criar um link simbólico entre um pacote local (que você está desenvolvendo) e outra aplicação local que depende desse pacote. Isso é especialmente útil para testar e desenvolver pacotes NPM de maneira integrada, sem precisar publicá-los a cada alteração.
Como Funciona o npm link?
-
No Pacote (Fonte):
- O comando cria um link simbólico global para o pacote em desenvolvimento.
- Esse link é armazenado em um local global no sistema.
-
Na Aplicação (Destino):
- A aplicação que usa o pacote é configurada para utilizar o link simbólico, ao invés de buscar a dependência no repositório NPM ou no
node_modules.
- A aplicação que usa o pacote é configurada para utilizar o link simbólico, ao invés de buscar a dependência no repositório NPM ou no
Por Que Usar o npm link?
- Teste Local de Pacotes:
- Útil para testar as alterações de um pacote antes de publicá-lo no repositório NPM.
- Desenvolvimento Conjunto:
- Permite trabalhar simultaneamente no pacote e na aplicação que o utiliza.
- Evitar Publicações Desnecessárias:
- Evita a necessidade de publicar versões intermediárias apenas para testar o comportamento em uma aplicação.
Como Usar o npm link?
1. No Diretório do Pacote
No diretório onde você está desenvolvendo o pacote:
npm link
Isso cria um link simbólico global para o pacote. Ele será listado na saída de:
npm ls -g --depth=0
2. Na Aplicação que Usa o Pacote
No diretório da aplicação que depende do pacote:
npm link <nome-do-pacote>
Substitua <nome-do-pacote> pelo nome definido no campo "name" do package.json do pacote.
Isso cria um link simbólico no node_modules da aplicação, apontando para o pacote local.
Fluxo Completo do npm link
-
Configuração Inicial:
- No pacote:
npm link - Na aplicação:
npm link <nome-do-pacote>
- No pacote:
-
Desenvolvimento:
- Faça alterações no código do pacote.
- Teste as alterações diretamente na aplicação que usa o pacote.
-
Desfazer o Link:
- Na aplicação, remova o link:
npm unlink <nome-do-pacote> - No pacote, remova o link global:
npm unlink
- Na aplicação, remova o link:
Vantagens do npm link
- Desenvolvimento Integrado: Testa mudanças no pacote em tempo real na aplicação dependente.
- Sem Publicação: Não é necessário publicar no NPM para testar.
- Evita Instalações Repetidas: As mudanças no pacote são automaticamente refletidas na aplicação.
Limitações e Cuidados
-
Problemas com Dependências:
- Se o pacote tem dependências que também estão instaladas na aplicação, pode haver conflitos.
- O
npm linkusa o diretórionode_modulesdo pacote em desenvolvimento, que pode não ser compatível com a aplicação.
-
Link Temporário:
- O link simbólico é válido apenas localmente e precisa ser desfeito manualmente antes da publicação.
-
Performance:
- Para projetos grandes, o uso de links simbólicos pode ser mais lento do que instalações diretas.
Alternativa ao npm link: Usar npm install Local
Outra abordagem para testar pacotes locais é usar o caminho do sistema diretamente:
npm install /caminho/para/seu/pacote
Isso instala o pacote localmente, mas não cria links simbólicos. Ideal para cenários onde você quer uma cópia estática.
Exemplo Prático
1. Criando um Pacote
-
No diretório do pacote:
mkdir meu-pacote
cd meu-pacote
npm init -y -
Adicione algum código em
index.js:module.exports = () => console.log("Olá do meu pacote!"); -
Crie o link global:
npm link
2. Usando o Pacote na Aplicação
-
No diretório da aplicação:
mkdir minha-app
cd minha-app
npm init -y
npm link meu-pacote -
Use o pacote em
index.jsda aplicação:const meuPacote = require("meu-pacote");
meuPacote(); -
Execute o script:
node index.jsSaída:
Olá do meu pacote! -
Alterações no pacote refletem imediatamente na aplicação.