Como eu desinstalo um pacote instalado usando o link npm?


162

Ao instalar um pacote de nó usando sudo npm linkno diretório do pacote, como posso desinstalar o pacote depois de concluir o desenvolvimento?

npm linkinstala o pacote como um link simbólico no local do pacote global do sistema ('/ usr / local / lib`). Isso permite que você teste o pacote enquanto ainda o desenvolve, sem precisar instalá-lo repetidamente.

Qual comando npm eu preciso executar para remover o link novamente?

Respostas:


166

O pacote pode ser desinstalado usando o mesmo comando uninstall ou rm que pode ser usado para remover pacotes instalados. A única coisa a ter em mente é que o link precisa ser desinstalado globalmente - o --globalsinalizador precisa ser fornecido.

Para desinstalar o foopacote vinculado globalmente , o seguinte comando pode ser usado (usando, sudose necessário, dependendo da configuração e das permissões)

sudo npm rm --global foo

Isso desinstalará o pacote.

Para verificar se um pacote está instalado, o npm lscomando pode ser usado:

npm ls --global foo

5
Se você não tem certeza do nome do pacote vinculado você também pode fazer npm ls --global --depth 0para listar todas as suas dependências de alto nível
schu34

1
Isso não funcionou para mim por causa de problemas de permissão, mesmo com sudo. Eu criei o diretório ausente com um manequim package.jsoncom o campo namee version( namedeve corresponder ao nome do pacote, versionpode ser qualquer coisa). Dentro dessa pasta eu corri npm link && npm unlinke funcionou.
silvenon 02/02

npm uninstallda pasta da biblioteca local também funcionará.
backslashN

132

você pode usar unlinkpara remover o link simbólico.

Por exemplo:

cd ~/projects/node-redis 
npm link                 
cd ~/projects/node-bloggy
npm link redis             # links to your local redis

Para reinstalar a partir do seu package.json:

npm unlink redis
npm install

https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application


4
Não é unlinko mesmo que rmpara npm? Eles compartilham a mesma página de manual (com uninstall).
Nwinkler

1
@nwinkler você pode compartilhar um link?
Blair Anderson

12
O código-fonte do npm usa rm, unlink, remove, re e un como aliases para desinstalação: github.com/npm/npm/blob/… - veja a linha 66ff.
Nwinkler

O link na parte inferior desta resposta está morto para mim.
Liron Yahdav

Não npm iremove todos os links, afinal?
Toivo Säwén

19

dor no link npm:

Nome do módulo gulp-task

-Nome do projeto project-x


Você deseja vincular gulp-task :

1: Vá para o diretório gulp-task e faça npm linko link simbólico do projeto para seus módulos globais

2: Vá para o projeto project-x e npm installremova o diretório node_modules atual


Agora você deseja remover essa loucura e usar a verdadeira tarefa gulp , temos duas opções:

Opção 1: desvincular via npm:

1: Vá para o seu projeto e npm unlink gulp-taskisso removerá o módulo instalado vinculado

2: Vá para o diretório gulp-task e faça npm unlinkpara remover o link simbólico. Observe que não usamos o nome do módulo

3: comemorar


E se isso não funcionasse, verifique localizando seu módulo global instalado. Meu local é ls -la /usr/local/lib/node_modules/se você estiver usando nvm , será um caminho diferente


Opção 2: Remova o link simbólico como um guru do linux normal

1: localize suas dependências globais cd /usr/local/lib/node_modules/

2: remover o link simbólico é simplesmente usar o rmcomando

rm gulp-task verifique se você não tem /no final

rm gulp-task/ está errado 🔥🚨

rm gulp-task ✔️


fazendo uma planície npm-unlinkremoveu todos os pacotes no meu projeto.
cst1992 19/06/19

2

Se você fez algo como acidentalmente npm linkgerador-webapp depois de alterá-lo, pode corrigi-lo clonando o gerador correto e vinculando- o .

git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;

0

"npm install" substitui todas as dependências no node_modules instaladas pelo "npm link" pelas versões do npmjs (especificadas no package.json)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.