266 votes

NodeJS ne peut pas trouver le module installé sur Windows ?

Je suis en train d'apprendre nodejs pour le moment sur Windows. Plusieurs modules sont installés à l'échelle mondiale avec des mnp.cmd, et nodejs pas réussi à trouver les modules installés. Prendre 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 va échouer avec un "Cannot find module 'jade'" d'erreur,

var jade = require('jade');

Toutefois, le code fonctionne correctement lorsque jade est installé localement (sans l'option-g dans mnp). Je ne veux pas utiliser localement modules installés, c'est un gaspillage d'espace disque pour moi, quelqu'un peut-il m'aider à faire l'ensemble des modules installés travail sur Windows?

376voto

Alexey Ivanov Points 3737

Ajouter une variable d'environnement appelée NODE_PATH et réglez - %USERPROFILE%\Application Data\npm\node_modules (Windows XP), %AppData%\npm\node_modules (Windows 7), ou de l'endroit où mnp finit d'installer les modules sur votre Windows saveur. Pour en finir une fois pour toutes, l'ajouter comme une variable Système dans l'onglet Avancé de la boîte de dialogue Propriétés Système (exécuter control.exe sysdm.cpl,System,3).


Vieille histoire

Je suis assez grand chose de nouveau node.js moi alors j'ai peut être pas tout à fait juste, mais à partir de mon expérience, c'est fonctionne de cette façon:

  1. -g n'est pas un moyen d'installer les bibliothèques mondiales, c'est seulement un moyen de les placer sur le chemin d'accès du système de sorte que vous pouvez les appeler en ligne de commande sans avoir à écrire le chemin d'accès complet. Il est utile, par exemple, puis le nœud de l'app est la conversion de fichiers locaux, comme des moins - si vous l'installez à l'échelle mondiale, vous pouvez l'utiliser dans n'importe quel répertoire.
  2. node.js lui-même n'a pas l'air au mnp mondiale dir, c'est en utilisant un autre algorithme pour trouver les fichiers nécessaires: http://nodejs.org/api/modules.html#modules_file_modules (en gros son balayage chaque dossier dans le chemin, à partir de l'actuel pour node_modules dossier et vérifie).

Voir même question pour plus de détails: Comment puis-je installer un module à l'échelle mondiale à l'aide de la ngp?

34voto

Jack Points 131

Si vous êtes dans la plate-forme de windows7, peut-être vous devriez changer le NODE_PATH comme ceci : C:\Users\Administrator**AppData\Roaming**\npm\node_modules

14voto

soemarko Points 658

Je vais juste citer à partir de ce nœud du blog...

En général, la règle de base est:

  • Si vous installez quelque chose que vous souhaitez utiliser dans votre programme, à l'aide de besoin ("cela"), puis l'installer en local, à la racine de votre projet.
  • Si vous installez quelque chose que vous souhaitez utiliser dans votre coquille, sur la ligne de commande ou quelque chose, de l'installer à l'échelle mondiale, de sorte que sa les binaires dans votre variable d'environnement PATH.

...

Bien sûr, il y a certains cas où vous voulez le faire à la fois. Coffee-script et d'Exprimer les deux sont de bons exemples d'applications qui ont un interface de ligne de commande, ainsi que d'une bibliothèque. Dans ces cas, vous pouvez effectuez l'une des opérations suivantes:

  1. L'installer dans les deux endroits. Sérieusement, est-ce vous qui court sur l'espace disque? C'est beau, vraiment. Ils sont minuscules des programmes JavaScript.
  2. L'installer de façon globale, puis mnp lien café-script ou npm lien express (si vous êtes sur une plate-forme qui prend en charge les liens symboliques.) Alors vous avez seulement besoin de mettre à jour la copie globale pour mettre à jour tous les liens symboliques en tant que bien.

12voto

sntran Points 1372

Pour faire court, utilisez `` dans votre répertoire d’application.

4voto

Saulius Points 172

De mon expierience avec win8.1 NGP installe les modules sur mais dumply les recherches sur .

Une solution simple référence module demande de chemin d’accès complet :

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