J'apprends actuellement les nodejs sous Windows. Npm.cmd installe globalement plusieurs modules et nodejs n'a pas réussi à trouver les modules installés. Prenez le jade par exemple,
npm install jade -g
Jade est installé dans le répertoire "C:\Program Files (x86)\nodejs\node_modules"
, mais le code suivant échouera avec une erreur "Cannot find module 'jade'"
,
var jade = require('jade');
Cependant, le code fonctionnera correctement lorsque jade est installé localement (sans l'option -g dans npm). Je ne veux pas utiliser de modules installés localement, c'est une perte d'espace disque pour moi. Quelqu'un peut-il m'aider à faire en sorte que les modules installés globalement fonctionnent sous Windows?
Ajoutez une variable d'environnement appelée NODE_PATH
et définissez-la sur %USERPROFILE%\Application Data\npm\node_modules
(Windows XP), %AppData%\npm\node_modules
(Windows 7/8/10) ou à l'endroit où npm finit par installer les modules sur votre version de Windows. Pour le faire une fois pour toutes, ajoutez-le en tant que variable système dans l'onglet Avancé de la boîte de dialogue Propriétés système (exécutez control.exe sysdm.cpl,System,3
).
La solution rapide dans Windows 7+ consiste simplement à exécuter:
rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules
Il vaut la peine de mentionner que NODE_PATH
n'est utilisé que lors de l'importation de modules dans les applications Node. Lorsque vous souhaitez utiliser les fichiers binaires de modules installés globalement dans votre CLI, vous devez également les ajouter à votre PATH
, mais sans la partie node_modules
(par exemple %AppData%\npm
dans Windows 7/8/10).
Vieille histoire
Je suis assez nouveau sur node.js et je ne peux donc pas tout à fait avoir raison, mais d'après mon expérience, cela fonctionne de la manière suivante:
Voir question similaire pour plus de détails: Comment installer un module globalement avec npm?
si vous êtes sur la plate-forme Windows7, vous devriez peut-être changer le NODE_PATH comme ceci: %AppData%\npm\node_modules
Je sais que je peux réveiller un zombie, mais je pense que c'est toujours un problème. Si vous avez besoin d'un accès global aux modules de nœud sous Windows 7, vous devez l'ajouter à votre chemin de variable global:
C:\Users\{USER}\AppData\Roaming\npm
Important: seulement ceci sans la partie node_modules
, m’a pris une demi-heure pour voir cela.
Pour le faire fonctionner sur Windows 10, je l'ai résolu en ajoutant le dossier %USERPROFILE%\AppData\Roaming\npm
à mon CHEMIN. Ayant ajouté \node_modules
comme ceci: %USERPROFILE%\AppData\Roaming\npm\node_modules\
ne fonctionnait pas pour moi.
Je citerai simplement le blog post de ce noeud ...
En général, la règle de base est la suivante:
- Si vous installez quelque chose que vous voulez utiliser dans votre programme, utilisez require («que ce soit»), puis installez-le localement, à la racine de votre projet.
- Si vous installez quelque chose que vous voulez utiliser dans votre shell, en ligne de commande ou quelque chose, installez-le globalement, de sorte que son.. les binaires se retrouvent dans votre variable d’environnement PATH.
...
Bien sûr, il y a des cas où vous voulez faire les deux ..___. Coffee-script et Express sont tous deux de bons exemples d'applications qui ont un interface de ligne de commande, ainsi qu'une bibliothèque. Dans ces cas, vous pouvez Effectuez l'une des actions suivantes:
- Installez-le aux deux endroits. Sérieusement, êtes-vous à court d'espace disque? C’est bien, vraiment. Ce sont de minuscules programmes JavaScript.
- Installez-le globalement, puis npm link coffee-script ou npm link express (si vous êtes sur une plate-forme prenant en charge les liens symboliques.) Ensuite, cliquez sur il vous suffit de mettre à jour la copie globale pour mettre à jour tous les liens symboliques en tant que bien.
Pour faire court, utilisez npm link jade
dans votre répertoire app.
J'ai essayé d’ajouter/éditer des variables d’environnement et d’arriver à la conclusion que:
User variables
(de la case du haut) au lieu de System variables
(de la partie inférieure); sinon, vous devez "exécuter en tant qu'administrateur" pour que cela fonctionne.;%AppData%\npm
à Path
afin de l'utiliser comme outil de ligne de commande (si pris en charge, comme jshint
et grunt-cli
).NODE_PATH
et définissez-le %AppData%\npm\node_modules
afin de require('<pkg_name>')
dans les scripts sans l'installer dans le répertoire du projet. (Mais npm link
est suggéré pour cette exigence si vous travaillez sur un système d'exploitation avec mklink
tel que Vista ou plus récent.)Environnement de test:
J'ai rencontré ce problème sous Windows 7, en cours d'exécution
npm install -g gulp
en tant qu'administrateur tout en étant connecté en tant qu'utilisateur normal.
Solution: Lors de l'exécution de la même installation que l'utilisateur normal (pas "exécuter en tant qu'administrateur" pour cmd), tout allait bien. Je suppose que cela est lié au chemin d'installation et de recherche par défaut.
J'ai eu du mal à faire fonctionner des modules globaux. Finalement, j'ai explicitement ajouté C:\Users\yourusername\AppData\Roaming\npm
à la variable PATH sous Variables système. J'avais aussi besoin que cette variable vienne avant la variable de chemin nodejs dans la liste.
J'utilise Windows 10.
Pour Windows, tout le monde a dit que vous devriez définir les variables d’environnement pour les modules nodejs et npm, mais savez-vous pourquoi? Certains modules ont un outil de ligne de commande, après l’installation du module, il y a [module] .cmd fichier dans C:\Program Files\nodejs , et il est utilisé pour le lancement dans la commande window. Ainsi, si vous n'ajoutez pas le chemin contenant le fichier cmd aux variables d'environnement% PATH% , vous ne pourrez pas les lancer avec succès via la fenêtre de commande.
De mon expérience avec win8.1 npm installe des modules sur C:\Users\[UserName]\AppData\Roaming\npm\node_modules
mais dumply les recherche sur C:\Users\[UserName]\node_modules
.
Un module de référence de solution simple en application par chemin complet:
var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");
J'ai eu le même problème, en essayant d'installer Bower avec npm install -g bower
Je pense que c’est parce que node a été installé par un autre utilisateur, pas par moi.
J'ai désinstallé le noeud, puis je l'ai réinstallé. Pendant l'installation, j'ai vu ce texte pour l'option (Ajouter à PATH> modules npm):
Message dans l'installation du noeud
Après l'installation du nœud, j'ai exécuté npm install -g bower
à nouveau. Et maintenant, Bower fonctionne.
Bien sûr, il n'est pas nécessaire de réinstaller le noeud avec son propre utilisateur, comme moi. La solution doit être via les variables NODE_PATH _ ou CHEMIN _, comme d'autres utilisateurs l'ont expliqué.
Vous remarquerez seulement que ce problème ne se produit que si le noeud a été installé par un autre utilisateur (ou si, lors de l'installation, l'option Ajouter à PATH> modules npm n'a pas été cochée).
Je suis tombé sur cette question parce que je veux utiliser node.js avec Visual Studio 2015 sur mon nouvel ordinateur avec Windows 10. J'ai utilisé node.js sur Windows 7, 8 et 8.1. J'utilise un noeud hérité.js 0.10.39 car je dois utiliser cette version à cause du module série et RFXCOM.
La solution pour Windows 10 consiste à définir NODE_PATH dans les variables d’environnement avec C:\Users\User\node_modules.
Pour Windows 10, je devais installer localement gulp dans le dossier:
C:\Users\myaccount\AppData\Roaming\npm\node_modules
npm install gulp
Ceci a corrigé mon problème de "gulp is not reconnu"
Sinon, vous pouvez ajouter à ~/.npmrc
right prefix . J'ai C:\Program Files\nodejs
pour 64 Win7.
Toutes les réponses ci-dessus n'ont pas fonctionné pour moi. La seule chose qui a finalement fonctionné a été d’ajouter le% AppData%\npm à la variable d’environnement Path, ET pour supprimer les deux fichiers ng dans C:\Program Files\nodejs.
Les packages ng n'étant pas installés dans C:\Program Files\nodejs\node_modules, il était donc évident que l'utilisation du fichier binaire ng du répertoire nodejs ne fonctionnerait pas.
Je ne suis pas sûr de savoir pourquoi la recherche a été effectuée dans ce répertoire car j'ai déjà configuré la variable d'environnement PATH dans le répertoire C:\Users\MyUser. J'ai essayé d'ajouter des variables système et/ou NODE_PATH.
Il suffit de télécharger et de réinstaller le noeud à partir de this et cela résoudra tous les problèmes de chemin.
N'oubliez pas de redémarrer votre commande Invite ou terminal.