2011-10-25 2 views
2

Récemment, il existe une version plus récente de node.js qui prend en charge npm pour Windows.Comment demander des modules de nœuds correctement dans node.exe de node.js

J'ai suivi les instructions here et je l'ai installé avec succès sur socket.io fenêtres par NPM (bien que certains ont échoué, comme JSDOM)

Cependant quand je requiers le module échoue ce qui suit:

var io = require("socket.io").listen(1234); 

et aussi

var io = require("./lib/node_modules/socket.io/index.js").listen(1234); 

Ce qui montre « ne peut pas trouver le module "socket.io"

Cependant, cela fonctionne:

var io = require('/NodeDev/lib/node_modules/socket.io/index.js').listen(1234); 

Voici où mes affaires sont placés:

dossier socket.io: D: \ NodeDev \ lib \ node_modules \

noeud

. exe: D: \ NodeDev \ bin \

mon script: D: \ NodeDev \ TestProject \

+0

http://stackoverflow.com/questions/15471965/what-will-be-the-difference-in-requiremypackage-js-and-requiremypackage/15471995#15471995 –

Répondre

14

J'ai rencontré un problème similaire lorsque je traitais des packages généralement disponibles dans Windows. Il a travaillé lorsque j'ai installé les paquets directement dans mon projet:

cd myProject 
npm install socket.io 

Il se alors installé dans le dossier myProject/node_modules. A ce moment-là, faire un require('socket.io') fonctionne pour moi.

+0

De plus, l'utilisation de node et de npm sous Windows est un peu de cauchemar en ce moment. Vous pourriez envisager d'utiliser cloud9ide.com, une VM linux pour lancer un nœud, ou quelque chose pour le moment. –

+0

Merci! J'ai résolu le problème avec la même méthode que la vôtre! (Bien que je l'ai compris moi-même en fait: p) Et j'essaierai aussi cloud9ide.com, merci à tous :) –

+1

Il est vraiment recommandé d'installer tous les modules NPM (qui ne sont pas des outils comme 'coffee') localement comme ça plutôt que globalement - cela signifie que différents projets peuvent cibler une version spécifique d'un module npm et que le projet dir a tout ce qu'il faut pour que vous puissiez le déployer facilement. –

Questions connexes