Comment réinstaller les dépendances d'une application à l'aide de npm?
386
Existe-t-il un moyen simple de réinstaller tous les packages dont mon application dépend (c'est-à-dire qu'ils se trouvent dans le dossier node_modules de mes applications)?
D'accord; en supposant que vous avez créé un package.jsonfichier pour votre application.
JohnnyHK
9
Attention, l'exécution npm installaprès la suppression du node_modulesrépertoire peut entraîner la suppression de différentes versions de dépendances définies package.json. Si vous avez besoin de versions très spécifiques des dépendances pour votre application, soyez prudent et examinez npm shrinkwrapou vérifiez votre node_modulesrépertoire pour contrôler les sources.
smithclay
10
@smithclay J'ai défini la version explicite des packages dans le package.json de mon application, donc ça devrait aller, non?
trusktr
@vadim Je faisais des tests sur le comportement de npm installet il réinstalle toujours les dépendances et met à niveau les packages vers les dernières versions comme autorisé par package.json. La suppression des node_modulesdossiers n'est donc pas nécessaire à moins que vous ne pensiez qu'elle est corrompue. Y a-t-il une raison pour laquelle vous pensez qu'il devrait être supprimé? Cependant, si l'intention est de supprimer tous les paquets qui sont superflus, alors vous pouvez exécuter à la npm pruneplace
himanshu
1
@himanshu vous avez raison npm installmet à niveau tous les modules à l'état package.json. Mais la question est de savoir comment réinstaller tous les packages . Ils peuvent donc être corrompus ou avoir besoin de reconstruire les parties binaires après la mise à niveau de la version node.js.
Vadim Baryshev
96
La bonne façon est d'exécuter npm update. C'est une commande vraiment puissante, elle met à jour les packages manquants et vérifie également si une version plus récente du package déjà installé peut être utilisée.
Lisez l' introduction à NPM pour comprendre ce que vous pouvez faire avec npm.
Mais s'il n'y a pas de nouveau package, cela ne fera rien, non? J'essaie de forcer la réinstallation même si le package est déjà à la dernière version.
trusktr
2
S'il ne manque aucun package, il vérifiera s'il peut utiliser les dernières versions des packages (y compris les dépendances des packages) répertoriés dans package.json. Donc, essentiellement, il mettra à niveau les packages si possible. Mais il ne se réinstallera pas. Si vous souhaitez le faire à l'aide de commandes, vous pouvez exécuter npm uninstall <package_name>pour désinstaller un package spécifique ou exécuter npm uninstallpour désinstaller tous les packages.
himanshu
1
J'ai essayé de faire juste npm uninstallsans spécifier de package mais cela génère une erreur.
trusktr
Avez-vous package.json dans le répertoire du dossier où vous avez exécuté cela? Si vous désinstallez le package global, vous devrez ajouter -g
himanshu
1
Le lien que vous fournissez est mort, pouvez-vous en fournir un nouveau? (J'ai trouvé cela mais je ne suis pas sûr qu'il soit acceptable de le changer)
Motti
64
La plupart du temps, j'utilise la commande suivante pour réaliser une réinstallation complète de tous les modules de noeud (assurez-vous que vous êtes dans le dossier du projet).
rm -rf node_modules && npm install
Vous pouvez également exécuter npm cache cleanaprès avoir supprimé le node_modulesdossier pour vous assurer qu'il n'y a pas de dépendances mises en cache.
Après l'avoir installé, vous pouvez utiliser la commande suivante:
reinstall
La seule différence avec la suppression manuelle du node_modulesdossier et sa création npm installest que cette commande efface automatiquement le cache de npm. Ainsi, vous pouvez obtenir trois étapes en une seule commande.
upd:npx reinstall est un moyen d'exécuter cette commande sans installer globalement le package (uniquement pour npm5 +)
@ g00glen00b J'ai édité afin qu'il inclue maintenant des informations utiles sans hyperliens
Rob
@ g00glen00b C'est parfaitement bien; cela n'en fait pas un candidat à la suppression. Veuillez consulter cet article - En particulier, il répond aux réponses courtes avec un lien, à condition qu'il y ait des informations utiles (par exemple, le nom de la bibliothèque) lorsque le lien hypertexte est supprimé
Rob
6
Vous pouvez le faire avec une seule commande simple:
qui supprime le node_modulesrépertoire et effectue npm installensuite. La suppression avant l'installation garantit que tous les packages sont réinstallés.
Suivez cette étape pour réinstaller les modules de noeud et les mettre à jour
fonctionne même si le dossier node_modules n'existe pas. exécutez maintenant la commande suivante de manière synchrone. vous pouvez également utiliser la "mise à jour npm" mais je pense que c'est la manière préférée
npm outdated // not necessary to run this command, but this will show outdated dependencies
npm install -g npm-check-updates // to install the "ncu" package
ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version
npm install: will install dependencies in your package.json file.
si vous êtes d'accord avec la version de vos dépendances dans votre fichier package.json, pas besoin de suivre ces étapes il suffit d'exécuter
npm rebuild
pourrait également aider certains problèmes avec les dépendances nativesnpm update <packageName>
Réponses:
La façon la plus simple que je puisse voir est de supprimer le
node_modules
dossier et de l'exécuternpm install
.la source
package.json
fichier pour votre application.npm install
après la suppression dunode_modules
répertoire peut entraîner la suppression de différentes versions de dépendances définiespackage.json
. Si vous avez besoin de versions très spécifiques des dépendances pour votre application, soyez prudent et examineznpm shrinkwrap
ou vérifiez votrenode_modules
répertoire pour contrôler les sources.npm install
et il réinstalle toujours les dépendances et met à niveau les packages vers les dernières versions comme autorisé par package.json. La suppression desnode_modules
dossiers n'est donc pas nécessaire à moins que vous ne pensiez qu'elle est corrompue. Y a-t-il une raison pour laquelle vous pensez qu'il devrait être supprimé? Cependant, si l'intention est de supprimer tous les paquets qui sont superflus, alors vous pouvez exécuter à lanpm prune
placenpm install
met à niveau tous les modules à l'état package.json. Mais la question est de savoir comment réinstaller tous les packages . Ils peuvent donc être corrompus ou avoir besoin de reconstruire les parties binaires après la mise à niveau de la version node.js.La bonne façon est d'exécuter
npm update
. C'est une commande vraiment puissante, elle met à jour les packages manquants et vérifie également si une version plus récente du package déjà installé peut être utilisée.Lisez l' introduction à NPM pour comprendre ce que vous pouvez faire avec npm.
la source
npm uninstall <package_name>
pour désinstaller un package spécifique ou exécuternpm uninstall
pour désinstaller tous les packages.npm uninstall
sans spécifier de package mais cela génère une erreur.La plupart du temps, j'utilise la commande suivante pour réaliser une réinstallation complète de tous les modules de noeud (assurez-vous que vous êtes dans le dossier du projet).
Vous pouvez également exécuter
npm cache clean
après avoir supprimé lenode_modules
dossier pour vous assurer qu'il n'y a pas de dépendances mises en cache.la source
npm
mis à jour la commande CLIinstall
et ajouté l'--force
indicateur.L' argument
--force
(ou-f
) forcera lanpm
récupération des ressources distantes même si une copie locale existe sur le disque.Voir
npm install
la source
Vous pouvez utiliser le module de réinstallation trouvé dans npm.
Après l'avoir installé, vous pouvez utiliser la commande suivante:
La seule différence avec la suppression manuelle du
node_modules
dossier et sa créationnpm install
est que cette commande efface automatiquement le cache de npm. Ainsi, vous pouvez obtenir trois étapes en une seule commande.upd:
npx reinstall
est un moyen d'exécuter cette commande sans installer globalement le package (uniquement pour npm5 +)la source
Vous pouvez le faire avec une seule commande simple:
la source
Pour Windows, vous pouvez utiliser
qui supprime le
node_modules
répertoire et effectuenpm install
ensuite. La suppression avant l'installation garantit que tous les packages sont réinstallés.la source
Suivez cette étape pour réinstaller les modules de noeud et les mettre à jour
fonctionne même si le dossier node_modules n'existe pas. exécutez maintenant la commande suivante de manière synchrone. vous pouvez également utiliser la "mise à jour npm" mais je pense que c'est la manière préférée
si vous êtes d'accord avec la version de vos dépendances dans votre fichier package.json, pas besoin de suivre ces étapes il suffit d'exécuter
la source