Problème avec le démarrage de Node.js à partir d'une console Cygwin
Je n'ai pas de difficultés à exécuter node.exe à partir d'une invite de commande:
C:\>node --interactive
> console.log("Works fine");
Works fine
Mais quand j'essaie de faire la même chose à partir d'une console Cygwin, je tombe sur ceci:
Olli@Olli-MBRr /cygdrive/c
$ node.exe
events.js:72
throw er; //Unhandled 'error' event
^
Error: read ENOTCONN
at errnoException (net.js:900:11)
at Socket._read (net.js:391:21)
at Socket.Readable.read (_stream_readable.js:320:10)
at Socket.read (net.js:293:43)
at new Socket (net.js:185:10)
at process.stdin (node.js:660:19)
at startup (node.js:145:16)
at node.js:901:3
Au début, j'ai pensé qu'il pourrait être parce que Cygwin a du mal avec le nom de chemin d'accès avec un espace (C:\Program Files\nodejs), mais après l'installation node.js pour un répertoire sans espace dans le nom du chemin d'accès, j'ai été incapable de résoudre le problème.
Je voudrais lancer un Node JS console de Emacs (exécuter à partir de Cygwin) à l'aide de js-comint, mais je suis tombé sur cette erreur et n'ai aucune idée de comment le résoudre.
source d'informationauteur luxbock
Vous devez vous connecter pour publier un commentaire.
Je pense que cela est causé par l'utilisation de la victoire distribution dans cygwin , depuis cygwin émule un *nix de l'environnement et de node.js pour windows recherche la victoire des bibliothèques de ne pas le nix. Pour node.js pour travailler dans cygwin, vous avez à construire-vous. Aussi les versions les plus récentes ne pas travailler sur cygwin.
État actuel de wiki officiel: Cygwin n'est plus supporté, en dépit d'être conformes à POSIX. La dernière version qui compile est 0.4.12
https://github.com/nodejs/node/wiki/Installation#building-on-cygwin
Il ne fonctionne pas à partir d'une console cygwin, mais il VA travailler dans un shell cygwin si vous l'exécutez à partir d'une console windows. Il suffit d'ouvrir une invite de commande et exécutez Cygwin.bat pour obtenir la coquille. Vous pouvez alors exécuter le nœud.
Selon cette cygwin de la console n'est pas une vraie console, c'est une pipe dans le déguisement.
Un problème similaire se produit lorsque vous tentez de vous connecter à partir d'Ubuntu à cocher pour windows/cygwing/sshd sur ssh.
Après la fixation de la voie, l'exécution de
semblent pendre (ignorer tous les commentaires), mais à répondre à tuer par ctrl-C
Cependant l'exécution de
fonctionne bien, sauf le caractère EOF semble ctrl-Z plutôt que la normale unix/cygwin ctrl-D
Node.js supprimé le support de Cygwin depuis longtemps. J'ai essayé d'utiliser certains l'ancienne version, mais il est désormais beaucoup de problèmes avec
npm
et pratiquement chaque autre bibliothèque que vous pouvez installer via le gestionnaire.Ce que j'ai fait: a écrit un Windows script shell traduire les chemins d'accès dans Windows-comme des chemins, mais c'est vraiment rapide et sale boulot, donc je ne le partagez pas encore. Ensuite, j'ai un lien symbolique de ce fichier bat dans
/usr/bin
et ce est la façon dont je vais l'appeler maintenant. Aussi, je pense que je commence le REPL-y immédiatement, parce que le Nœud de la version que j'ai ne pas le faire sur son propre par défaut.J'ai essayé de le construire, mais la construction est très salissant. Ils ont utilisé SCons et quelques autres de la bibliothèque sur le dessus de cela, et que la bibliothèque est en quelque sorte hors de date maintenant (je suis en utilisant SCons pour d'autres projets, donc je n'ai pas essayer de décote).
Bas de ligne, si vous avez juste besoin d'un interpréteur JavaScript dans Emacs - essayez Mozrepl, Node.js ne veut tout simplement pas jouer gentil avec elle.
À l'aide de
rlwrap node --interactive
résolu pour moi. Le--interactive
interrupteur de la garde de la pendaison, etrlwrap
corrige les imperfections avec un historique de navigation, etc.Remarque: vous devrez peut-être installer
rlwrap
grâce à Cygwin du gestionnaire de package.