Respostas:
O comando a seguir remove todos os módulos npm globais. Nota: isso não funciona no Windows. Para uma versão funcional do Windows, consulte Resposta de Ollie Bennett .
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Aqui está como funciona:
npm ls -gp --depth=0
lista todos os módulos globais de nível superior (consulte a documentação do cli para ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
imprime todos os módulos que não são realmente o próprio npm (não termina com /npm
)xargs npm -g rm
remove todos os módulos globalmente que passam pelo canal anteriorPara aqueles que usam o Windows , a maneira mais fácil de remover todos os pacotes npm instalados globalmente é excluir o conteúdo de:
C:\Users\username\AppData\Roaming\npm
Você pode chegar lá rapidamente digitando %appdata%/npm
o explorer, o prompt de execução ou no menu Iniciar.
%USERPROFILE%\AppData\npm
sem o roaming
.
npm install
novamente. Eu tive que excluir meu package-lock.json
arquivo também.
Tentei a solução de Kai Sternad , mas me pareceu imperfeita. Restavam muitos símbolos especiais após o último awk
da própria árvore deps.
Então, criei minha própria modificação da solução de Kai Sternad (com uma pequena ajuda da idéia da caxemira ):
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
npm ls -gp --depth=0
lista todos os módulos npm instalados globalmente no formato analisável :
/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...
awk -F/node_modules/ '{print $2}'
extrai os nomes dos módulos dos caminhos, formando a lista de todos os módulos instalados globalmente.
grep -vE '^(npm|)$'
remove o próprio npm e as linhas em branco.
xargs -r npm -g rm
chama npm -g rm
para cada módulo na lista.
Como a solução de Kai Sternad , ele só funcionará com * nix.
npm
instala todos os seus módulos globais no mesmo diretório. A localização exata pode variar, mas normalmente é /usr/local/lib/node_modules
.
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
@angular/cli
). Eu adiciono outro matcher para awk
e o comando de trabalho para mim se parece com o seguinte: #npm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
trabalhou para mim
sudo npm list -g --depth=0.
lista todos os níveis superiores instaladosawk -F ' ' '{print $2}'
se livrar de ├──awk -F '@' '{print $1}'
recebe a parte antes de '@'sudo xargs npm remove -g
remove o pacote globalmentenpm remove UNMET
simplesmente o NOOP.
grep -v npm
para que o próprio npm não seja removido:sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Para aqueles que usam o Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Para limpar o cache:
npm cache clear
Basta mudar para o %appdata%/npm
diretório e executar o seguinte ...
for package in `ls node_modules`; do npm uninstall $package; done;
EDIT: este comando quebra com npm 3.3.6 (nó 5.0). Agora estou usando o seguinte comando Bash, que mapeei para npm_uninstall_all no meu arquivo .bashrc:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Bônus adicionado? é muito mais rápido!
https://github.com/npm/npm/issues/10187
Como você desinstala todas as dependências listadas no package.json (NPM)?
npm
e n
antes dotr
no Windows, vá para o diretório "C: \ Users {nome de usuário} \ AppData \ Roaming" e remova manualmente a pasta npm
Se você possui o jq instalado, pode continuar sem o grep / awk / sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
No Debian e derivado, você pode instalar o jq com:
sudo apt-get install jq
json
estilo apropriado .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
SO não especificado pelo OP. Para Windows , esse script pode ser usado para nuke os módulos e o cache global e local do usuário.
Percebi no linux que a raiz global é verdadeiramente global para o sistema em vez do usuário especificado. Portanto, excluir a raiz global pode não ser uma boa ideia para um sistema compartilhado. Além disso, posso portar o script para o bash, se estiver interessado.
No Windows , salve em um arquivo cmd para executar.
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SETLOCAL EnableExtensions
SET /A ecode=0
:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
ECHO operation aborted
SET /A ecode=!ecode!+1
GOTO END
)
:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (
:: get root path into var
SET cmd=npm root %%~a
FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)
:: paranoid
ECHO validating module path "!npm_root!"
IF "!npm_root:~-12!"=="node_modules" (
IF NOT EXIST "!npm_root!" (
ECHO npm root does not exist "!npm_root!"
) ELSE (
ECHO deleting "!npm_root!" ...
:: delete
RMDIR /S /Q "!npm_root!"
)
) ELSE (
ECHO suspicious npm root, ignoring "!npm_root!"
)
)
:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean
:: done
ECHO done
:END
ENDLOCAL & EXIT /b %ecode%
Use este código para desinstalar qualquer pacote:
npm rm -g <package_name>
Você pode localizar todos os pacotes npm instalados no local:
C:\Users\username\AppData\Roaming\npm
e exclua o conteúdo do npm que você deseja remover.
Se o AppData não estiver sendo exibido, significa que está oculto e você pode ir para Exibir no explorador de arquivos e verificar os itens ocultos; então, você pode ver todas as pastas ocultas.
Bem, se você estiver no Windows e quiser remover / desinstalar todos os node_modules, precisará executar as etapas a seguir.
Digite o comando abaixo e dê-o por 1-2 minutos; ele desinstalará todos os diretórios dentro do node_module
rmdir /s /q node_modules
Espero que isso ajude alguém no Windows
se você tiver o Intellij Webstorm, poderá usar seu gerenciador de pacotes gráfico embutido.
abra-o como root e crie um projeto vazio. vamos para
Arquivo> Configurações> Idioma e estruturas> Node.js e NPM
lá você verá todos os pacotes instalados. A desinstalação é fácil, você pode selecionar e desmarcar qualquer pacote que deseja desinstalar, Ctrl + a woks também.
Para yarn global
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
Ou, se você não se importa com o que realmente está dentro package.json
echo {} > ~/.config/yarn/global/package.json && yarn global add
Isso também deve se aplicar ao NPM, mas não sei exatamente onde o NPM global está armazenado.
Como essa é a principal resposta na pesquisa, eu estou postando isso aqui, pois foi a solução que usei no passado para limpar os computadores que trocavam de laptops.
cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +
fonte: https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e
Aqui está uma solução mais elegante que eu tentei onde deixei a npm fazer todo o trabalho para mim.
# On Linux Mint 19.1 Cinnamon
# First navigate to where your global packages are installed.
$ npm root # returns /where/your/node_modules/folder/is
$ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules
Então, se você faz npm uninstall
ou npm remove
esses módulos serão tratados como se fossem dependências normais de um projeto. Ele até gera um arquivo package-lock.json quando é feito:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
Basta colocar no seu console:
sudo lista npm -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm remove -g
É um trabalho para mim ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Explicação: divida em espaços ou @, apenas combine linhas com @, o nome do módulo será o penúltimo da última match ($(NF-1)
), portanto, apenas imprima se não énpm