116 votes

Comment inclure le chemin du binaire du nœud avec lequel npm a été exécuté ?

Windows, VSC, Running npm start J'ai trouvé ça.

Cycle de vie de npm WARN Le binaire du nœud utilisé pour les scripts est le suivant C:\Program Fichiers \nodejs\node.exe mais npm utilise C:\somewhere\AppData\Roaming\npm\node_modules\node\bin\node.exe lui-même. Utilisez le --scripts-prepend-node-path pour inclure le chemin pour le binaire du nœud avec lequel npm a été exécuté.

Je comprends que cela signifie que ma version locale est différente de celle de la variable PATH ( C:\Program Fichiers...). Comment procéder pour lui dire d'utiliser --scripts-prepend-node-path ?

J'ai joué un tour en remplaçant le C:\Program Files\nodejs avec C:\somewhere\AppData\Roaming\npm\node_modules\node\bin dans la variable PATH, il détecte que le nouveau node.exe obtenu but there is no node binary in the current PATH . Je vous recommande à nouveau d'utiliser le --scrip ts-prepend-node-path pour inclure le chemin d'accès au binaire du nœud avec lequel npm a été exécuté.

190voto

Jeb50 Points 587

Comme je l'ai dit, remplacer le chemin réel dans la variable système PATH n'a pas résolu le problème complètement, il se plaint toujours que le binaire est manquant. Trouvé ce a résolu le there is no node binary in the current PATH problème. J'ai restauré le PATH original, j'ai essayé et ça a marché.

Il suffit de créer un fichier dans le dossier racine de l'application, appelé .npmrc , placez cette ligne dedans :

scripts-prepend-node-path=true

4 votes

Je ne sais pas pourquoi, mais cela a fonctionné pour moi, mais la npm config set scripts-prepend-node-path auto La réponse de la commande ci-dessous ne l'a pas fait. Merci.

1 votes

Je voulais juste ajouter que cela fonctionne toujours en juillet 2021.

0 votes

Cette option a été supprimée dans les derniers npm : github.com/npm/cli/issues/2808

128voto

godbout Points 473

Voici un autre moyen qui fonctionne : npm config set scripts-prepend-node-path auto

0 votes

Puisque le problème semble se produire dans différents projets, il s'agit de la réponse préférable. Vous n'avez donc pas besoin de créer un fichier .npmrc dans chaque projet, comme le suggère la réponse acceptée.

3 votes

Je l'accepte comme la réponse acceptée puisque a) cela fonctionne (dans tous mes environnements) et b) comme @kas l'a souligné, cela rend la vie plus facile.

30voto

Lior Points 1151

Conflit entre votre binaire node et votre npm


Dans le cas où l'erreur ressemble à quelque chose comme :

npm essaie d'utiliser le même noeud que celui qu'il utilise pour s'exécuter.

Résolvez ce conflit en ajoutant le répertoire du nœud à votre liste d'utilisateurs. PATH :

npm config set scripts-prepend-node-path true

Extrait de la documentation de npm :

npm run définit la variable d'environnement NODE sur l'exécutable node avec lequel avec lequel npm est exécuté. De plus, si l'option --scripts-prepend-node-path est passée passé, le répertoire dans lequel réside node est ajouté au PATH.

9voto

Ron Newcomb Points 975

Ayant ce problème dans Visual Studio 2017, j'ai plutôt dit à VS de toujours utiliser le NodeJS que j'avais installé depuis nodejs.org plutôt que celui figé dans le temps qui est livré avec Visual Studio. (Celui qui était livré avec VS2015 est tellement ancien qu'il ne fonctionne plus vraiment).

Dans Visual Studio, allez dans TOOLS > OPTIONS > cherchez EXTERNAL WEB TOOLS > et assurez-vous que " C:\Program Fichiers \nodejs " (ou à l'endroit où nodejs.org l'a installé) est le premier dans la liste des chemins, en l'ajoutant si nécessaire.

-1voto

Dhruv Sehgal Points 544

Pour WebStorm, l'invalidation des caches et le redémarrage ont fonctionné pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X