Résoudre l'erreur 'sh: command not found: npm' sur macOS et Linux
Lorsque vous rencontrez sh: command not found: npm dans votre terminal, cela signifie que votre shell ne parvient pas à localiser l’exécutable npm. Cette erreur apparaît généralement lorsque Node.js n’est pas installé, que npm est absent de votre PATH système, ou que votre configuration shell nécessite une mise à jour. Voici comment diagnostiquer et résoudre ce problème courant de dépannage Node.js sur les systèmes macOS et Linux.
Points clés à retenir
- L’erreur npm command not found se produit lorsque npm n’est pas dans votre variable d’environnement PATH
- L’installation de Node.js via des gestionnaires de paquets ou nvm configure automatiquement les paramètres PATH
- Différents shells (Bash, Zsh, Fish) nécessitent des modifications spécifiques de leurs fichiers de configuration
- L’utilisation de nvm offre la solution la plus flexible pour gérer plusieurs versions de Node.js
Comprendre l’erreur de PATH npm
L’erreur se produit parce que votre shell recherche les commandes dans les répertoires listés dans la variable d’environnement PATH. Lorsque npm ne se trouve dans aucun de ces répertoires, vous obtenez le message sh: command not found: npm. Cela arrive dans trois scénarios : Node.js n’a jamais été installé, l’installation a échoué partiellement, ou votre configuration PATH est incorrecte.
Diagnostic rapide : Vérifiez votre configuration actuelle
Tout d’abord, vérifiez si Node.js est installé :
node --version
Si Node.js est installé mais que npm ne fonctionne pas, vérifiez si npm existe sur votre système :
which npm
L’absence de résultat signifie que npm n’est pas dans votre PATH. Ensuite, examinez votre configuration PATH actuelle :
echo $PATH
Cela affiche tous les répertoires dans lesquels votre shell recherche des commandes. Si le répertoire de npm n’est pas listé, c’est là votre problème.
Installation de Node.js et npm sur macOS
Utilisation de Homebrew (Recommandé)
Homebrew fournit la méthode d’installation la plus propre pour macOS :
brew install node
Cela installe à la fois Node.js et npm, en configurant automatiquement votre PATH. Vérifiez l’installation :
npm --version
Méthode de téléchargement direct
Alternativement, téléchargez l’installateur depuis nodejs.org. L’installateur macOS gère automatiquement la configuration du PATH, mais vous devrez redémarrer votre terminal par la suite.
Installation de Node.js et npm sur Linux
Systèmes Ubuntu/Debian
Utilisez le gestionnaire de paquets de votre distribution :
sudo apt update
sudo apt install nodejs npm
Systèmes Fedora/RHEL
sudo dnf install nodejs npm
Arch Linux
sudo pacman -S nodejs npm
Après l’installation, vérifiez que npm fonctionne :
npm --version
Discover how at OpenReplay.com.
Correction des problèmes de configuration PATH
Si npm est installé mais affiche toujours l’erreur, vous devez l’ajouter manuellement à votre PATH.
Pour les utilisateurs de Bash
Modifiez votre fichier .bashrc :
echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.bashrc
source ~/.bashrc
Pour les utilisateurs de Zsh (par défaut sur macOS)
Modifiez votre fichier .zshrc :
echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.zshrc
source ~/.zshrc
Remplacez /usr/local/bin par le chemin réel de votre installation npm. Trouvez-le en utilisant :
find / -name npm 2>/dev/null
Utilisation de Node Version Manager (nvm)
nvm prévient les conflits de versions et les problèmes de PATH en gérant les installations Node.js séparément des paquets système. Cette approche élimine la plupart des erreurs npm command not found.
Installer nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Installer Node.js via nvm
nvm install node
nvm use node
nvm gère automatiquement la configuration du PATH et permet de basculer entre les versions de Node.js pour différents projets. C’est particulièrement utile lorsque vous travaillez sur des projets nécessitant des versions spécifiques de Node.js.
Dépannage spécifique aux shells
Différents shells peuvent nécessiter des configurations spécifiques :
- Bash : Vérifiez
.bashrcou.bash_profile - Zsh : Vérifiez
.zshrc - Fish : Vérifiez
~/.config/fish/config.fish
Redémarrez toujours votre terminal ou exécutez source sur le fichier de configuration après avoir effectué des modifications.
Vérification de votre correction
Après avoir appliqué une solution, vérifiez que npm fonctionne correctement :
npm --version
npm list -g --depth=0
Testez l’installation d’un paquet pour garantir le bon fonctionnement complet :
npm install -g npm@latest
Pièges courants à éviter
N’utilisez pas sudo avec les installations globales npm sauf si c’est absolument nécessaire — cela peut causer des problèmes de permissions par la suite. Si vous rencontrez des erreurs de permissions, envisagez de changer le répertoire par défaut de npm ou d’utiliser npx au lieu d’installations globales.
Pour les environnements d’entreprise avec des proxies, configurez les paramètres proxy de npm :
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
Conclusion
L’erreur sh: command not found: npm est simple à corriger une fois que vous en comprenez la cause. Que ce soit via des gestionnaires de paquets, une installation directe, ou nvm, faire fonctionner npm implique de s’assurer que Node.js est installé et que votre PATH est configuré correctement. L’utilisation de nvm offre la solution la plus flexible, en particulier pour les développeurs gérant plusieurs projets. Avec npm fonctionnant correctement, vous pouvez vous concentrer sur le développement plutôt que sur le dépannage de votre environnement de développement.
FAQ
Différents terminaux peuvent utiliser différentes configurations shell. Vérifiez quel shell vous utilisez avec echo $SHELL et assurez-vous que le PATH est défini dans le bon fichier de configuration pour ce shell.
Oui, l'utilisation de nvm vous permet d'installer et de basculer entre plusieurs versions de Node.js et npm. Chaque version est isolée, évitant les conflits entre projets nécessitant différentes versions.
Installez les paquets localement pour les dépendances de projet et globalement uniquement pour les outils en ligne de commande que vous utilisez sur plusieurs projets. L'installation locale prévient les conflits de versions et les problèmes de permissions.
Changez le répertoire par défaut de npm pour un répertoire dont vous êtes propriétaire en utilisant npm config set prefix ou utilisez npx pour exécuter des paquets sans les installer globalement. Cela évite complètement les problèmes de permissions.
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.