Si j'ai un fichier package.json défini dans la racine de mon application et que npm install -g
je l' exécute, il installera toutes les dépendances définies dans package.json, globalement.
Cependant, cela ne semble pas fonctionner en sens inverse.
Si je le fais npm uninstall -g
dans la racine de mon application, cela génère une erreur, m'excitant de lui passer un nom de package.
Cela ne devrait-il pas également désinstaller les mêmes packages que j'ai installés?
Est-ce que je fais quelque chose de mal?
Réponses:
Si vous utilisez Bash, basculez simplement dans le dossier contenant votre fichier package.json et exécutez ce qui suit:
Dans le cas de packages installés globalement, basculez dans votre
%appdata%/npm
dossier (si sur Windows) et exécutez la même commande.EDIT: Cette commande rompt avec npm 3.3.6 (Node 5.0). J'utilise maintenant la commande Bash suivante, que j'ai mappée à npm_uninstall_all dans mon fichier .bashrc:
Bonus ajouté? c'est beaucoup plus rapide!
https://github.com/npm/npm/issues/10187
la source
npm uninstall <package>
pour chaque dossier. Je l'ai fait moi-même et cela fonctionne parfaitement!npm uninstall
s'occupe de cela, c'est pourquoi cette astuce est utile.foreach($package in ls node_modules){npm uninstall $package}
tr is not recognized
Cela a fonctionné pour moi:
invite de commande ou gitbash dans le dossier node_modules de votre projet, puis exécutez:
Suppression de tous les packages locaux pour ce projet.
la source
Pour Windows, accédez au répertoire node_modules et exécutez-le dans PowerShell
la source
J'ai récemment trouvé une commande de nœud qui permet de désinstaller toutes les dépendances de développement comme suit:
Comme je l'ai mentionné, cette commande désinstalle uniquement les packages de dépendance de développement. Au moins, cela m'a aidé à ne pas avoir à le faire manuellement.
la source
Conseil pour les utilisateurs Windows: exécutez cette commande PowerShell à partir du
node_modules
répertoire parent:la source
Cela crée essentiellement un faux package.json vide, appelle
npm prune
à tout supprimer dans node_modules, restaure le package.json d'origine et réinstalle tout.Certaines des autres solutions peuvent être plus élégantes, mais je soupçonne que c'est plus rapide et exhaustif. Sur d'autres threads, j'ai vu des gens suggérer de simplement supprimer le répertoire node_modules, mais au moins pour Windows, cela provoque l'étouffement de npm par la suite car le répertoire bin disparaît. Peut-être que sous Linux, il est restauré correctement, mais pas Windows.
la source
En fait, il n'y a pas d'option pour le faire, si vous souhaitez désinstaller des packages,
package.json
faites simplementnpm ls
sur le même répertoire quipackage.json
dépend et utilisenpm uninstall <name>
ounpm rm <name>
pour le package que vous souhaitez supprimer.la source
npm i
"
npm i
" n'installera pas seulement les deps manquants, il mettra à jour node_modules pour qu'ils correspondent au package.jsonla source
( Ne reproduisez pas ces étapes avant d'avoir tout lu )
Pour moi, toutes les solutions mentionnées n'ont pas fonctionné. Alors je suis allé
/usr/lib
et j'ai couru là-basMais il a également supprimé le
npm
paquet et seulement la moitié des paquets (jusqu'à ce qu'il atteigne la lettre n).J'ai donc essayé à nouveau d'installer node par le guide des nœuds.
Mais il ne s'est pas réinstallé
npm
.J'ai donc décidé de réinstaller le nœud entier
sudo apt-get remove nodejs
et de l'installer à nouveau par le guide ci-dessus.Maintenant, NPM fonctionne à nouveau mais les modules globaux sont toujours là. J'ai donc vérifié le contenu du répertoire
/usr/lib/node_modules
et semble que le seul important ici soitnpm
. J'ai donc édité la commande ci-dessus pour tout désinstaller saufnpm
Il a supprimé tous les modules qui n'étaient pas préfixés
@
. Donc j'ai étendu la boucle pour les sous-répertoires.My
/usr/lib/node_modules
ne contient désormais que desnpm
packages liés.la source
Une autre option SIMPLE consiste à supprimer les node_modules et package-lock.json
Après cela, vous pouvez essayer de réinstaller les packages npm
la source
Même vous n'avez pas besoin de lancer la boucle pour cela.
Vous pouvez supprimer tous les node_modules en utilisant la seule commande unique: -
la source
Utilisateurs PowerShell:
foreach($package in ls node_modules){npm uninstall $package}
Merci @JustMailer
la source
Piggy-backing de VIKAS KOHLI et jedmao , vous pouvez le faire
version simple ligne:
version multi-lignes:
la source