Dépannage Node.js
Ce document vise à aider les développeurs utilisant l’environnement de développement local ServBay à résoudre les problèmes courants pouvant survenir lors de l’utilisation des paquets Node.js.
Commande Node.js/npm/pnpm/yarn : version introuvable ou non trouvée
Lorsque vous utilisez Node.js, npm, pnpm ou yarn dans ServBay, si vous voyez un message d’erreur semblable à celui-ci, cela signifie que le système ne parvient pas à trouver la version spécifique de Node.js que vous essayez d'utiliser :
bash
Warning: Specified Node.js version '22' for 'node' not found.
If this is not your intention, please delete the 'NODE_VERSION' configuration
from the '.servbay.config' file in the current directory.
1
2
3
2
3
Cela se produit généralement lorsque la version de Node.js demandée n'est pas encore installée dans ServBay, ou si vous souhaitez utiliser une version gérée par un autre outil comme nvm
ou homebrew
, mais que la configuration de l’environnement empêche ServBay de la retrouver correctement.
Astuce
Après installation de ServBay, le système configure des alias de script afin de privilégier les paquets Node.js installés via ServBay. Si la version demandée n’est pas trouvée, ServBay tente successivement la version par défaut de Node.js installée par nvm
, puis celle installée via homebrew
. Si aucune de ces versions n’est présente, l’erreur ci-dessus sera affichée.
Analyse du problème :
- La version de Node.js que vous essayez d’utiliser n’est pas installée dans l’application ServBay.
- Node.js est également installé via
nvm
ouhomebrew
, et vous vous attendez à utiliser l’une de ces versions. Toutefois, si la configuration de votre shell (en particulier les variables d’environnementPATH
ouNVM_BIN
) est incorrecte, le mécanisme de retour de ServBay ne pourra pas localiser ces installations externes.
Solution :
Si vous avez installé nvm
et une version de Node.js avec celui-ci, mais que l’erreur persiste, la cause la plus fréquente est une mauvaise configuration — ou l’absence — de la variable d’environnement NVM_BIN
dans votre shell. Cette variable, correctement définie, pointe vers l’emplacement des exécutables Node.js gérés par nvm
et est essentielle au bon fonctionnement de l’outil.
Pour corriger le problème, vérifiez la configuration nvm
dans votre fichier de configuration du shell (tel que ~/.zshrc
, ~/.bash_profile
, etc.), assurez-vous que la variable NVM_BIN
est bien définie et exportée, puis rechargez votre configuration de shell (par exemple en exécutant source ~/.zshrc
ou en redémarrant le terminal). Une fois corrigée, le mécanisme de recherche de ServBay devrait retrouver correctement les versions de Node.js gérées par nvm
.
Si vous n’utilisez pas nvm
ni homebrew
ou que vous préférez utiliser les versions de Node.js gérées directement par ServBay, assurez-vous que la version souhaitée est bien installée depuis l’interface “Paquets” de l’application ServBay.
Erreur d’architecture non supportée lors de l’utilisation de paquets npm comme node-sass
Pour les utilisateurs de macOS équipés de processeurs Apple Silicon (M1/M2/M3/M4, architecture Arm64), l’utilisation de paquets npm anciens, ou de ceux dépendant de modules natifs (tels que node-sass
), peut entraîner des messages d’erreur tels que Unsupported architecture (arm64)
. Cela est dû au fait que ces versions plus anciennes ne proposent parfois des binaires ou des configurations de compilation que pour l’architecture x86_64.
bash
ERROR: Module Error (from ./node_modules/sass-loader/dist/cjs.js):
Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 14.x
For more information on which environments are supported
please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
1
2
3
4
5
2
3
4
5
Analyse du problème :
Certains paquets npm embarquent du code natif (C++, etc.) nécessitant une compilation adaptée à l’architecture CPU. Les anciennes versions de ces paquets ne proposent pas toujours de support ou de binaires pré-compilés pour Arm64 (Apple Silicon).
Solutions :
Remplacer par une alternative moderne et compatible Arm64 (recommandé) :
La meilleure solution consiste à installer un remplacement moderne et officiellement compatible avec Arm64. Par exemple, remplacer
node-sass
(désormais obsolète et peu maintenu) par le paquetsass
, nettement plus performant et activement suivi. La grande majorité des projets front-end récents et des chaînes d’outils recommandent désormais l’usage desass
.bashnpm uninstall node-sass npm install --save-dev sass
1
2Installer Node.js en version x86_64 via ServBay et l’exécuter via Rosetta 2 (non recommandé) :
ServBay permet l’installation de paquets Node.js pour l’architecture
x86_64
sur Mac Apple Silicon. Ainsi, Node.js et ses modules natifsx86_64
pourront s’exécuter via la couche de traduction Rosetta 2 de macOS. Pour cela, sélectionnez la versionx86_64
de Node.js dans l’interface “Paquets” de ServBay.Attention : Cette solution n'est pas recommandée sur le long terme, car l’émulation Rosetta 2 peut induire des pénalités de performance et causer des problèmes de compatibilité par rapport à une exécution native sous Arm64. Privilégiez la première solution chaque fois que possible.