Como desinstalar módulos npm no nó js?

1130

Como vulgarmente conhecido, qualquer módulo npm pode ser instalado executando um comando simples: npm install <module_name>.

Instalei alguns módulos que não uso mais e só quero removê-los. Eu tenho algumas perguntas sobre isso:

  • Temos algum comando ou processo para desinstalar um módulo da raiz (algo como npm uninstall <module_name>) ou simplesmente removeremos os arquivos do módulo?

  • Como isso nos afeta se mantemos os módulos não utilizados?

Manish Kumar
fonte
2
Se você deseja remover todos os módulos npm, acesse aqui: stackoverflow.com/questions/9283472/…
daniel

Respostas:

1729

O comando é simplesmente npm uninstall <name>

Os documentos do Node.js https://npmjs.org/doc/ possuem todos os comandos que você precisa conhecer com o npm.

Uma instalação local estará no node_modules/diretório do seu aplicativo. Isso não afetará o aplicativo se um módulo permanecer lá sem referências a ele.

Se você estiver removendo um pacote global, no entanto, todos os aplicativos que o referem falham.

Aqui estão diferentes opções:

npm uninstall <name>remove o módulo de, node_modulesmas não atualizapackage.json

npm uninstall <name> --savetambém remove de dependenciesdentropackage.json

npm uninstall <name> --save-devtambém remove de devDependenciesdentropackage.json

npm uninstall -g <name> --save também remove globalmente

Menztrual
fonte
19
tente isso npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmpara desinstalar todos os módulos instalados globalmente. se você estiver no Windows, então você precisa instalar o Cygwin ou git para executá-lo
Nur Rony
1
Para desinstalar todos os módulos globais: stackoverflow.com/questions/5926672/... E node_modules Excluir pasta para desinstalar todos os módulos locais node_modules locais de exclusão pasta
DanteTheSmith
1
Tentei remover [email protected] usando todos os comandos listados acima, e ele ainda está lá
Steve Staple
20
npm uninstall <name> now removes the module from both package.json` enode_modules
philip oghenerobo balogun,
1
a partir de 2019, o nó 13 (também acredito que 10+) remove os pacotes do package.json via #npm uninstall <name>
Maksim Shamihulau
86

Se não funcionar, npm uninstall <module_name>tente globalmente digitando -g.

Talvez você só precise fazer isso como superusuário / administrador sudo npm uninstall <module_name>.

fuma
fonte
4
-gé útil se houver um npm WARN uninstall.
Lorem Ipsum Dolor
49

Bem, para dar uma resposta completa a esta pergunta, existem dois métodos : (por exemplo, chamamos o módulo instalado como module1)

  1. Para remover o module1 sem alterar o package.json:

    npm uninstall module1

  2. Para remover module1 com a alteração do package.json e removendo-o das dependências no package.json:

    npm uninstall --save module1

Nota: para simplificar os comandos mencionados acima, você pode usar -S em vez de --save , e pode remover , rm , r , un , unlink em vez de desinstalar

Ehsan
fonte
Por uma questão de completude, deve-se ter cuidado se ele / ela deseja remover a dependência GLOBAL ou LOCAL. Para globais use -g com o acima! Também: Para desinstalar todos os módulos globais: stackoverflow.com/questions/5926672/... E node_modules excluir a pasta Para desinstalar todos os módulos locais node_modules locais de exclusão pasta
DanteTheSmith
28

Apenas instalo a caneta por padrão no diretório dir de casa, portanto, uso-a npm uninstall styluspara desanexá-la, ou você pode experimentar npm rm <package_name>.

GrahamLe
fonte
17

Para desinstalar o módulo do nó:

npm uninstall <module_name>  

Isso removerá o módulo do node_modules, mas não do package.json. Então, quando instalarmos o npm novamente, ele fará o download do módulo.

Portanto, para remover o módulo do package.json, use:

npm uninstall <module_name> --save  

Isso também exclui a dependência do package.json.

E se você deseja desinstalar qualquer módulo global, pode usar:

npm -g uninstall <module_name> --save 

Isso excluirá a dependência globalmente.

Vishnu Mishra
fonte
7

Para remover pacotes em node_modules/massa, você também pode removê-los package.json, salvá-los e, em seguida, executar npm pruneno terminal.

Isso removerá os pacotes que existem no sistema de arquivos, mas não são usados ​​/ declarados package.json.

PS> Isso é particularmente útil no Windows, pois você pode encontrar problemas com a impossibilidade de excluir alguns arquivos devido ao "limite de tamanho do caminho excedido".

last-indigo
fonte
6

Descobri isso da maneira mais difícil, mesmo que seja aparentemente óbvio.

Inicialmente, tentei percorrer o diretório node_modules executando npm uninstall module-nameum loop for simples em um script. Descobri que não funcionará se você chamar o caminho completo, por exemplo

npm uninstall module-name

estava trabalhando, mas

npm uninstall /full/path/to/node_modules/module-name 

não estava funcionando.

kayleeFrye_onDeck
fonte
6

Você também pode executar o seguinte como abreviação:

npm un packageName ou npm rm packageName

Nota: Adicione -gno final do comando para desinstalar pacotes globais.

Mwiza
fonte
4

Para usuários do Windows - Se você deseja remover todos os módulos do nó instalados de uma vez:

  • PowerShell aberto
  • Vá para a pasta node_modules (cd node_modules)
  • Execute este comando - "npm uninstall (Get-ChildItem) .Name"

Ele desinstalará todos os módulos.

Manish Kumar
fonte
4

Às vezes npm uninstall -g packageNamenão funciona.

Nesse caso, você pode excluir o pacote manualmente.

No Mac, vá para a pasta /usr/local/lib/node_modulese exclua a pasta com o pacote desejado. É isso aí. Verifique sua lista de pacotes instalados globalmente com este comandonpm list -g --depth=0

Nastro
fonte
Apenas curioso, por que o "npm uninstall -g packageName" não funciona em alguns casos?
Mwiza
porque é um código de buggy enorme ... é realmente difícil se adaptar a todas as versões do sistema operacional. Eu acho que é a razão
Nastro
3

Atualização npm 5:

A partir do npm 5.0.0 , os módulos instalados / desinstalados são adicionados / removidos como uma dependência por padrão, portanto, a opção --save não é mais necessária.

corre

npm uninstall <package>

por exemplo:

npm uninstall mongodb

Ele removerá o módulo da pasta node_modules e do arquivo package.json também

codemirror
fonte
1
Verdade; se você deseja o antigo comportamento padrão (deixando o package.json intocado), use o sinalizador --no-save docs.npmjs.com/cli/install
Marcus
2

A uninstallopção não funcionou para mim quando tentei usar o mesmo comando usado na instalação (como eu estava instalando com a @latestdiretiva)

Por exemplo, eu instalei um pacote como este:

npm install  @ngtools/webpack@latest

E então eu queria desinstalá-lo, então usei o mesmo comando (incluindo @latest)

npm uninstall  @ngtools/webpack@latest

Portanto, a desinstalação acima não funcionou, tenho que remover o @latest& funcionou bem

npm uninstall  @ngtools/webpack

Eu espero que isso ajude

Ahmed Elkoussy
fonte
1
# login as root (might be required depending on install)
su - 
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm
snassr
fonte
1

A solução mais simples é:

npm uninstall packageName --save-dev

Veja os nomes dos pacotes de nível superior no seu projeto:

npm list --depth=0

A saída será como:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

Copie o nome do pacote e execute o comando npm uninstall. Exemplo para pacote expresso:

npm uninstall express --save-dev
Jackkobec
fonte
1

Para desinstalar um módulo usando o npm, você pode usar:

npm uninstall moduleName

Além disso, se você deseja desinstalar e deseja que a alteração seja refletida no package.json, use o sinalizador --save, desta forma:

npm uninstall moduleName --save
OR
npm uninstall -S

E se você deseja desinstalar um módulo do devDependencies e deseja que a alteração seja refletida no package.json, use o sinalizador -D, desta forma:

npm uninstall moduleName -D
Harshit Agarwal
fonte
1

Para desinstalar o módulo do nó:

npm uninstall <module_name>  

Isso removerá o módulo do node_modules, mas não do package.json.

Remova o módulo do package.json use usando este comando:

npm uninstall <module_name> --save 

Isso também exclui do package.json.

Slim Coder
fonte
0

Além disso, se você começou a usar yarn, no lugar de npm:
yarn remove <package-name>

É o equivalente a:
npm uninstall <package-name> --save

Isso irá
- remover o pacote package.jsone
desinstalá-lo da node-modulespasta do seu projeto

SherylHohman
fonte
0

Você pode excluir um módulo de nó manualmente. Para Windows,

  1. Vá para o node_modulesdiretório do seu repo.

  2. Exclua o módulo do nó que você não deseja.

  3. Não se esqueça de remover a referência ao módulo no seu package.json! Seu projeto ainda pode ser executado com a referência, mas você pode receber um erro. Você também não deseja deixar referências não utilizadas no seu package.jsonque possam causar confusão mais tarde.

Super Jade
fonte
-1

Usar

npm uninstall <package_name>

Exemplo para desinstalar o Express

npm uninstall express
atormentar
fonte
-1

Caso você seja Windows, execute o CMD como administrador e digite npm -g uninstall <package name>.

Osama Al-Banna
fonte
-2

Se você deseja desinstalar vários módulos, basta executar o npm uninstall. Em seguida, vá para package.jsone exclua o módulo indesejado de lá e execute o comando npm install. Deve resolver o seu problema.

Tanumay Ghosh
fonte