La documentation npm distingue deux pistes pour une erreur d’autorisation lors d’une installation globale : utiliser un gestionnaire de versions Node.js ou déplacer le dossier global vers un emplacement utilisateur (guide officiel sur EACCES). Ne lancez pas sudo npm install -g pour forcer le passage : vérifiez d’abord les chemins de Node.js, de npm et du dossier global, puis choisissez la correction adaptée.
Pour vous : vous venez d’installer Node.js 24 et votre première commande npm globale est bloquée par un refus d’accès.
Vous utilisez un Mac d’école ou un Mac distant sans droits administrateur, ou vous avez besoin d’une commande globale pour suivre un cours de JavaScript.
Ce guide vous aide à distinguer un problème de permissions d’un problème de dépendances de projet, sans vous demander de modifier le système à l’aveugle.
SECTION 01Une erreur limitée à la commande globale
Avant de corriger quoi que ce soit, repérez la commande exacte qui échoue. Installer un outil « globalement », c’est le rendre accessible depuis différents dossiers de votre compte ; installer une dépendance dans un projet, c’est ajouter un outil au projet concerné. Ces deux actions n’écrivent pas nécessairement au même endroit. La documentation npm explique cette distinction entre installation globale et installation de paquets.
| Ce que vous avez lancé | Ce que cela cherche à faire | Première vérification |
|---|---|---|
npm install dans le dossier d’un projet |
Installer les dépendances déclarées pour ce projet | Êtes-vous bien dans le dossier du projet, et le cours indique-t-il cette commande ? |
npm install -g <outil> |
Installer une commande globale utilisable hors du projet | Le dossier global de npm est-il accessible en écriture ? |
| Une commande de démarrage du projet, telle qu’un script prévu par le cours | Exécuter le projet avec ses outils | La commande échoue-t-elle pendant l’installation, ou seulement au lancement ? |
Le mot important dans un message EACCES est le chemin qu’il désigne. Si le refus concerne un dossier global, poursuivez le diagnostic ci-dessous. Si l’erreur survient dans le dossier du projet, ne changez pas le préfixe global pour autant : vérifiez plutôt les instructions du cours, l’emplacement du projet et le message complet.
Par exemple, si npm install -g échoue mais que les dépendances du projet sont déjà installées, votre projet n’est pas automatiquement endommagé. À l’inverse, si npm install dans le projet échoue, une modification du dossier global peut ne rien résoudre. Le bon correctif dépend de l’opération qui a réellement échoué, pas seulement du mot « npm » affiché dans le terminal.
La portée globale est aussi plus large que nécessaire pour de nombreux exercices. Si l’outil sert uniquement à un projet et que le cours fournit une procédure locale, suivez celle-ci. Ne convertissez pas une installation locale en installation globale simplement parce que vous avez vu cette option dans un tutoriel différent.
SECTION 02Les chemins réellement utilisés
Une même fenêtre de terminal peut retrouver des composants issus d’installations différentes. C’est une cause fréquente de confusion : vous pensez utiliser l’installation récente de Node.js 24, mais le shell trouve un ancien npm, ou bien npm tente d’écrire dans un dossier associé à une autre installation.
Dans votre terminal, exécutez séparément les commandes de vérification ci-dessous :
node -v
npm -v
which node
which npm
npm config get prefix
Les deux premières indiquent les versions reconnues par ce terminal. Les commandes which montrent les chemins des exécutables sélectionnés par le shell ; npm config get prefix affiche le préfixe associé à l’installation globale. Ces vérifications ne suppriment et ne modifient aucun fichier. Pour comprendre le rôle du préfixe et l’organisation des dossiers, consultez la documentation npm sur les dossiers d’installation.
| Résultat observé | Interprétation possible | Suite prudente |
|---|---|---|
| Node.js et npm viennent de chemins qui semblent appartenir à des installations différentes | Le terminal peut mélanger une installation récente et un ancien composant | Arrêtez-vous et identifiez l’installation destinée au cours avant de changer les permissions |
| Le préfixe global pointe vers un dossier système ou un emplacement que votre compte ne peut pas modifier | npm peut rencontrer un refus d’écriture pendant l’installation globale | Envisagez un gestionnaire de versions ou un dossier utilisateur, selon les règles de l’appareil |
| Les chemins sont cohérents, mais l’erreur mentionne le dossier du projet | Le problème peut concerner les dépendances ou les droits sur ce projet, pas l’installation globale | Revenez à la procédure du cours et ne modifiez pas le préfixe global sans raison |
Un résultat qui paraît surprenant n’autorise pas à supprimer le dossier concerné. Il faut d’abord comprendre qui l’a créé et quel outil l’utilise. Le guide officiel npm sur les erreurs EACCES traite ce problème comme un diagnostic de l’installation globale ; il ne signifie pas qu’il faut rendre un dossier système accessible à tout le monde.
Si le Mac appartient à votre école ou à votre employeur, traitez la configuration imposée comme une règle, pas comme un obstacle à contourner. Sans autorisation pour modifier le terminal ou installer un outil, demandez la méthode approuvée avant de poursuivre.
SECTION 03Choisir une correction sans élargir les permissions
Option à privilégier : un gestionnaire de versions
Un gestionnaire de versions permet de choisir entre plusieurs installations de Node.js sans faire dépendre toutes vos commandes d’un seul dossier global partagé. C’est la voie que npm recommande pour traiter les erreurs de permissions liées aux installations globales. Consultez le guide npm consacré à EACCES et choisissez une méthode compatible avec votre cours et votre Mac.
Cette solution est généralement pertinente si vous changez souvent de version pour des cours différents, si vous avez la permission d’installer un gestionnaire ou si les résultats montrent que le terminal utilise des composants dispersés. Elle n’est pas un ordre de réinstaller immédiatement tout Node.js : avant de remplacer une installation, notez la version requise par le cours et vérifiez avec l’enseignant ou l’administrateur que ce changement est accepté.
La page officielle des versions Node.js distingue les branches de publication, tandis que l’archive officielle de Node.js 24 permet de vérifier les distributions de cette branche. Ce contrôle est utile si le cours exige précisément Node.js 24 ; ne supposez pas qu’une mise à jour de votre installation respecte automatiquement cette exigence.
N’appliquez pas une commande d’installation trouvée au hasard comme si elle convenait à tous les Mac. Les choix dépendent de la méthode actuellement installée, du shell employé et des règles de l’appareil. Suivez la documentation de la méthode que vous choisissez, puis contrôlez à nouveau node -v, npm -v et les chemins. Si vous ne savez pas quelle installation sera conservée, arrêtez-vous avant de modifier votre configuration.
Autre possibilité : placer le dossier global dans votre espace utilisateur
Si vous ne pouvez pas changer de méthode d’installation, npm documente aussi la possibilité d’utiliser un dossier global situé dans votre espace utilisateur, puis de faire en sorte que le shell retrouve les commandes qui y sont installées. Le principe est de ne pas demander à npm d’écrire dans un dossier système protégé. La documentation des dossiers npm et la référence des paramètres de configuration décrivent les éléments à vérifier.
Cette solution peut convenir si l’installation de Node.js et npm est cohérente, si le cours autorise cette configuration et si vous avez le droit de modifier les fichiers de configuration de votre compte. Elle demande toutefois davantage d’attention au PATH : c’est la liste de chemins que le terminal parcourt pour trouver les commandes. Une commande peut être installée correctement mais rester introuvable si son dossier exécutable n’y figure pas.
La documentation npm fournit des indications de configuration, mais il ne faut pas copier une ligne de terminal sans vérifier où elle écrit et quel shell vous utilisez. Sur un Mac géré, ou si vous ne pouvez pas modifier les fichiers de configuration, n’essayez pas de contourner les restrictions : demandez l’autorisation ou utilisez l’environnement fourni par le cours.
Arbre de décision
- Si le cours impose Node.js 24, que les chemins de Node.js et npm sont cohérents et que vous êtes autorisé à gérer votre environnement, choisissez la voie du gestionnaire de versions recommandée par npm.
- Si vous ne pouvez pas changer l’installation mais pouvez modifier la configuration de votre compte, envisagez un dossier global utilisateur et vérifiez le
PATHdans le shell réellement utilisé. - Si l’appareil est administré et que vous n’avez pas l’autorisation de modifier cette configuration, arrêtez-vous et demandez la procédure prévue par l’établissement.
- Si l’échec concerne
npm installdans le projet et non une installation globale, revenez au diagnostic des dépendances du projet au lieu de modifier les permissions globales. - Si les chemins affichés ne permettent pas d’identifier clairement l’installation active, ne supprimez rien et ne changez pas les permissions : demandez une vérification à la personne qui gère l’environnement.
SECTION 04Vérifier la correction et le projet de cours
Procédez par petites étapes. Après chaque changement autorisé, ouvrez un nouveau terminal si la documentation de votre méthode le demande, puis vérifiez que le shell retrouve la version attendue. Un ancien terminal peut conserver son environnement précédent ; comparer uniquement les fenêtres déjà ouvertes peut donc vous induire en erreur.
- Reproduisez le problème sans le forcer. Notez la commande exacte qui échoue et copiez le chemin indiqué dans le message
EACCES. Ne relancez pas la commande avecsudopour obtenir un résultat différent : cela brouillerait le diagnostic. - Vérifiez les exécutables actifs. Relancez
node -v,npm -v,which nodeetwhich npm. Comparez les chemins avec la méthode d’installation que vous avez choisi de conserver. - Contrôlez le préfixe global. Lancez
npm config get prefixet comparez le résultat au chemin cité dans l’erreur. Si l’emplacement reste inexpliqué, ne changez pas les permissions pour tester au hasard. - Choisissez une seule voie autorisée. Utilisez un gestionnaire de versions ou un dossier utilisateur, mais ne cumulez pas plusieurs changements de configuration sans vérifier l’effet du premier.
- Testez la commande globale utile au cours. Une fois l’installation terminée, vérifiez si le terminal retrouve la commande attendue. Si le paquet s’est installé sans erreur mais que la commande est introuvable, examinez le
PATHplutôt que de réinstaller le paquet. - Revenez au projet. Dans son dossier, relancez uniquement la commande prévue par les instructions du cours, puis essayez son démarrage habituel. Une correction globale n’exige pas de remplacer les fichiers du projet.
- Comparez les terminaux. Si le terminal de votre éditeur de code ne trouve pas la commande, vérifiez les profils de terminal et les variables d’environnement selon la documentation de l’éditeur. Il peut ne pas utiliser le même shell que celui ouvert dans macOS.
Les repères concrets à retenir viennent des documentations : npm distingue l’installation globale de l’installation d’un paquet dans un projet ; son guide EACCES propose la voie du gestionnaire de versions ou celle du dossier utilisateur ; la documentation des dossiers indique où npm organise les éléments liés au préfixe global. Ces éléments aident à localiser la panne, mais ne garantissent pas qu’une procédure identique convienne à toutes les installations.
SECTION 05Symptômes qui imposent une pause
- Le refus d’accès persiste sur un dossier système. Vous n’avez pas encore établi pourquoi le terminal utilise ce dossier ou si vous êtes autorisé à le modifier. Arrêtez-vous ; ne changez pas son propriétaire ni ses permissions.
- L’installation semble réussir, mais la commande reste introuvable. Vérifiez le chemin de l’exécutable et le
PATH, puis comparez le terminal macOS avec celui de votre éditeur. Réinstaller le paquet sans vérifier ces éléments peut répéter le problème. - L’échec se produit dans les dépendances du projet. Identifiez le dossier et la commande concernés. Une erreur locale ne prouve pas qu’il faut changer le préfixe global.
- La configuration du Mac est gérée par un établissement. Respectez les restrictions et demandez l’accès ou l’environnement de travail approuvé. Un compte sans droits administrateur ne justifie pas de contourner les règles de l’appareil.
- Vous ne pouvez pas relier les chemins à une installation connue. Gardez le message d’erreur et les résultats des commandes de diagnostic ; transmettez-les à l’enseignant ou à l’administrateur plutôt que de supprimer des répertoires.
Pour vérifier que le cours reste fonctionnel, comparez le comportement du projet avant et après la correction : les dépendances doivent être installées depuis son dossier, la commande de démarrage reste celle indiquée par le cours et les versions affichées doivent correspondre à ses exigences. Si le projet échoue toujours, ne concluez pas immédiatement que la correction des permissions l’a cassé ; vérifiez d’abord si l’erreur concerne le projet, la commande globale ou le terminal de l’éditeur.
SECTION 06Questions fréquentes
Pourquoi une installation globale échoue-t-elle avec EACCES ?
Le refus indique que le processus n’a pas pu accéder au chemin mentionné. Pour une commande globale, ce chemin peut appartenir à un dossier que votre compte ne peut pas modifier. Une installation incohérente ou un ancien préfixe peut aussi intervenir. Comparez les chemins de Node.js, npm et du préfixe global avant de choisir une correction ; le seul numéro de version ne permet pas de déterminer la cause.
Est-il possible d’utiliser une commande npm globale sans compte administrateur ?
Parfois, oui : npm documente l’usage d’un dossier global dans l’espace utilisateur, et recommande aussi la voie d’un gestionnaire de versions pour traiter les erreurs EACCES. Mais cette possibilité dépend des règles du Mac et de votre droit à modifier votre environnement. Sur un appareil administré, demandez d’abord la procédure autorisée plutôt que de changer des paramètres protégés.
Comment savoir si l’erreur concerne le projet ou npm global ?
Regardez la commande lancée et le chemin indiqué. Une commande npm install exécutée dans le dossier d’un projet vise ses dépendances ; npm install -g demande une installation globale. Ces opérations n’ont pas la même portée. Si l’erreur est locale au projet, vérifiez les consignes et le dossier courant avant de toucher au préfixe global ou à la configuration de Node.js.
Que faire si mon projet fonctionne mais que l’éditeur ne trouve plus une commande ?
Comparez les résultats dans le terminal macOS et dans le terminal intégré à l’éditeur : chemins de Node.js et npm, versions affichées et PATH disponible. Si une commande fonctionne dans un terminal mais pas dans l’autre, le problème peut venir du profil ou de l’environnement chargé par l’éditeur, et non des permissions du projet. Ne réinstallez pas tout avant d’avoir identifié cette différence.
SECTION 07Quand changer d’environnement de travail
Si votre Mac actuel fonctionne déjà et que le blocage se limite à une commande npm, la location d’un autre environnement ne corrigera pas nécessairement la configuration de ce terminal. Un Mac partagé ou administré peut limiter les installations ; une configuration locale mal identifiée peut mélanger les chemins ; et l’absence de droits de modification peut vous empêcher d’appliquer vous-même la correction. Dans ces cas, l’administrateur ou l’enseignant reste la meilleure personne pour confirmer la procédure permise.
En revanche, si votre ordinateur ne vous donne pas un environnement macOS utilisable pour les exercices du cours, vous pouvez comparer les solutions sur la page de présentation de MACNOX. Pour un besoin temporaire, MACNOX donne accès à un véritable Mac distant par des outils de contrôle à distance et propose des formules à la semaine, au mois ou au trimestre. Cela évite d’acheter immédiatement une machine, tout en vous laissant travailler dans macOS ; ce n’est toutefois pas le meilleur choix si vous avez besoin d’une charge lourde en continu ou d’un accès physique aux ports de votre propre ordinateur. Consultez les formules MACNOX seulement si vos cours exigent réellement un Mac et que votre environnement actuel ne peut pas le fournir.
SECTION 08FAQ
Que faire quand une installation globale avec npm échoue avec EACCES sur Mac ?
Commencez par identifier le Node.js, npm et le préfixe global réellement utilisés dans votre terminal. Si leurs chemins sont cohérents mais que le dossier global n’est pas accessible en écriture, privilégiez un gestionnaire de versions recommandé par npm. L’autre voie documentée consiste à placer les installations globales dans un dossier utilisateur et à vérifier le PATH.
Pourquoi npm affiche-t-il une erreur de permission avec Node.js 24 ?
Le numéro de version ne suffit pas à expliquer EACCES. L’erreur apparaît généralement lorsque npm tente d’écrire dans un dossier global que votre compte ne peut pas modifier, ou lorsque Node.js et npm proviennent de plusieurs installations différentes. Comparez leurs chemins avant toute correction : un ancien reste d’installation ou un préfixe inattendu peut orienter le diagnostic.
Peut-on installer une commande npm globale sans droits administrateur sur le Mac de l’école ?
Cela peut être possible si l’installation utilise un gestionnaire de versions autorisé ou un dossier global situé dans votre espace utilisateur, mais les règles de l’établissement restent prioritaires. Si le Mac est administré ou si vous n’êtes pas autorisé à modifier la configuration du terminal, ne cherchez pas à contourner cette restriction : demandez la procédure à l’administrateur ou utilisez la solution prévue par le cours.
Comment vérifier que la correction de npm n’a pas perturbé mon projet de cours ?
Revenez dans le dossier du projet et relancez la commande d’installation des dépendances indiquée par le cours, sans la transformer en installation globale. Vérifiez ensuite que le projet démarre avec son script habituel et que le terminal affiche toujours les versions attendues. Si seul un éditeur de code ne trouve pas la commande, comparez son terminal à celui de macOS avant de modifier de nouveau les permissions.