Risposte:
Il seguente comando rimuove tutti i moduli npm globali. Nota: questo non funziona su Windows. Per una versione di Windows funzionante, vedere la risposta di Ollie Bennett .
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Ecco come funziona:
npm ls -gp --depth=0
elenca tutti i moduli di livello superiore globali (consultare la documentazione cli per ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
stampa tutti i moduli che in realtà non sono npm (non termina con /npm
)xargs npm -g rm
rimuove tutti i moduli a livello globale che superano la pipa precedentePer coloro che utilizzano Windows , il modo più semplice per rimuovere tutti i pacchetti npm installati a livello globale è quello di eliminare il contenuto di:
C:\Users\username\AppData\Roaming\npm
Puoi arrivarci rapidamente digitando %appdata%/npm
explorer, esegui prompt o dal menu di avvio.
%USERPROFILE%\AppData\npm
senza roaming
.
npm install
. Ho dovuto cancellare anche il mio package-lock.json
file.
Ho provato la soluzione di Kai Sternad ma mi è sembrata imperfetta. C'erano molti simboli speciali rimasti dopo l'ultimo awk
dall'albero delle deps stesso.
Quindi, mi è venuta in mente la mia modifica della soluzione di Kai Sternad (con un piccolo aiuto dall'idea del cashmere ):
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
npm ls -gp --depth=0
elenca tutti i moduli npm installati a livello globale in formato analizzabile :
/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}'
estrae i nomi dei moduli dai percorsi, formando l'elenco di tutti i moduli installati a livello globale.
grep -vE '^(npm|)$'
rimuove npm stesso e righe vuote.
xargs -r npm -g rm
chiama npm -g rm
per ciascun modulo nell'elenco.
Come la soluzione di Kai Sternad , funzionerà solo con * nix.
npm
installa tutti i suoi moduli globali nella stessa directory. La posizione esatta può variare, ma in genere lo è /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
). Aggiungo un altro matcher per awk
e il comando funzionante per me è simile al seguente: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
ha funzionato per me
sudo npm list -g --depth=0.
elenca tutti i livelli superiori installatiawk -F ' ' '{print $2}'
si sbarazza di ├──awk -F '@' '{print $1}'
ottiene la parte prima di "@"sudo xargs npm remove -g
rimuove il pacchetto a livello globalenpm remove UNMET
fa semplicemente NOOP.
grep -v npm
modo che npm stesso non venga rimosso:sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Per coloro che usano Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Per cancellare la cache:
npm cache clear
Passa alla tua %appdata%/npm
directory ed esegui il seguente ...
for package in `ls node_modules`; do npm uninstall $package; done;
EDIT: questo comando si interrompe con npm 3.3.6 (Nodo 5.0). Ora sto usando il seguente comando Bash, che ho mappato su npm_uninstall_all nel mio file .bashrc:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Bonus aggiunto? è molto più veloce!
https://github.com/npm/npm/issues/10187
Come disinstallare tutte le dipendenze elencate in package.json (NPM)?
npm
e n
prima deltr
in Windows vai alla directory "C: \ Users {nome utente} \ AppData \ Roaming" e rimuovi manualmente la cartella npm
Se hai installato jq , puoi andare anche senza grep / awk / sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
Su Debian e derivati puoi installare jq con:
sudo apt-get install jq
json
stile a proposito .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
Sistema operativo non specificato dall'OP. Per Windows , questo script può essere utilizzato per annidare i moduli e la cache globali locali e dell'utente.
Ho notato su Linux che la radice globale è veramente globale per il sistema invece che per l'utente specificato. Pertanto, l'eliminazione della radice globale potrebbe non essere una buona idea per un sistema condiviso. A parte questo, posso portare la sceneggiatura a bash se interessati.
Per Windows , salvare in un file cmd per l'esecuzione.
@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%
Usa questo codice per disinstallare qualsiasi pacchetto:
npm rm -g <package_name>
È possibile individuare tutti i pacchetti npm installati nella posizione:
C:\Users\username\AppData\Roaming\npm
ed elimina il contenuto di npm che desideri rimuovere.
Se AppData non viene visualizzato, significa che è nascosto e puoi andare su Visualizza in Esplora file e controllare gli elementi nascosti, quindi puoi vedere tutte le cartelle nascoste.
Bene, se sei su Windows e vuoi rimuovere / disinstallare tutti i node_modules, allora devi fare i seguenti passi.
Digita sotto il comando e daglielo per 1-2 minuti disinstallerà tutte le directory all'interno di node_module
rmdir /s /q node_modules
Spero che questo possa aiutare qualcuno su Windows
se si dispone di Intellij Webstorm è possibile utilizzare il relativo gestore di pacchetti grafico incorporato.
aprilo come root e crea un progetto emtpy. vai a
File> Impostazioni> Lingua e frame> Node.js e NPM
lì vedrai tutti i pacchetti installati. La disinstallazione è semplice, puoi selezionare e deselezionare qualsiasi pacchetto che desideri disinstallare, anche Ctrl + a woks.
Per yarn global
nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add
Oppure, se non ti interessa ciò che è effettivamente dentro package.json
echo {} > ~/.config/yarn/global/package.json && yarn global add
Questo dovrebbe valere anche per NPM, ma non sono sicuro di dove sia archiviato NPM Global.
Dal momento che questa è la risposta principale nella ricerca, la sto pubblicando qui poiché era la soluzione che ho usato in passato per pulire i computer portatili.
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
Ecco una soluzione più elegante che ho provato dove ho lasciato che npm facesse tutto il lavoro per me.
# 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
Quindi se lo fai npm uninstall
o npm remove
questi moduli verranno trattati come se fossero normali dipendenze di un progetto. Genera anche un file package-lock.json al termine:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
Inserisci la tua console:
sudo npm list -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm remove -g
Il suo lavoro per me ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Spiegazione: dividi su spazi o @, abbina solo le righe con @, il nome del modulo sarà il penultimo match ($(NF-1)
), quindi stampa solo se non lo ènpm