Problema al iniciar Node.js desde una consola Cygwin

No tengo problemas para ejecutar node.exe desde un indicador de comando regular:

C:\>node --interactive > console.log("Works fine"); Works fine 

Pero cuando bash hacer lo mismo desde una consola de Cygwin, me encuentro con esto:

 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 

Al principio pensé que podría ser porque Cygwin tiene problemas con el nombre de la ruta con un espacio (C: \ Archivos de progtwig \ nodejs), pero después de instalar node.js en un directorio sin espacios en la ruta, no pude. Resuelve el problema.

Me gustaría ejecutar una consola Node JS desde Emacs (ejecutada desde Cygwin) usando js-comint, pero me encontré con este error y no tengo idea de cómo resolverlo.

Creo que esto se debe al uso de la distribución win en cygwin, ya que cygwin emula un entorno * nix y node.js para windows busca las bibliotecas win, no las de nix. Para que node.js funcione en cygwin, debes crearlo en yourslef. También las últimas versiones no funcionan en cygwin.

Estado actual de la wiki oficial: Cygwin ya no es compatible, a pesar de ser compatible con POSIX. La última versión que comstack es 0.4.12.

https://github.com/nodejs/node/wiki/Installation#building-on-cygwin

No funcionará desde una consola cygwin, pero funcionará en un shell cygwin si lo ejecuta desde una consola de Windows. Simplemente abre un símbolo del sistema y ejecuta Cygwin.bat para obtener el shell. A continuación, puede ejecutar nodo.

De acuerdo con esto, la consola de cygwin no es una consola real, es un conducto disfrazado.

Un problema similar ocurre cuando se intenta conectar desde el cuadro de Ubuntu a windows / cygwing / sshd sobre ssh.

Después de arreglar el camino, corriendo.

nodo

Parece que se cuelga (ignora todas las entradas) pero responde a kill por ctrl-C

Sin embargo corriendo

nodo –interactivo

funciona bien, excepto que el carácter EOF parece ser ctrl-Z en lugar del ctrl-D unix / cygwin normal

Node.js abandonó el soporte para Cygwin desde hace mucho tiempo. He intentado usar una versión anterior, pero ahora significa muchos problemas con npm y básicamente con cualquier otra biblioteca que pueda instalar a través del administrador.

Lo que hice: escribí un script de shell de Windows traduciendo las rutas en rutas similares a las de Windows, pero es un trabajo realmente rápido y sucio, así que no lo compartiré todavía. Luego hice un enlace simbólico de este archivo bat en /usr/bin y así es como lo llamo ahora. Además, creo que estoy iniciando el REPL allí inmediatamente, porque la versión de Nodo que tengo no lo hace por sí sola de forma predeterminada.

He intentado construirlo, pero la construcción es muy desordenada. Han usado SCons y alguna otra biblioteca encima de eso, y esa biblioteca está un poco fuera de fecha ahora (estoy usando SCons para otros proyectos, así que no intenté degradarlo).

En pocas palabras, si solo necesita un intérprete de JavaScript en Emacs: pruebe Mozrepl, Node.js simplemente no quiere jugar bien con él.

Usando el rlwrap node --interactive resolví por mí. El interruptor --interactive evita que se cuelgue, y rlwrap corrige los problemas con la navegación de historial, etc.

Nota: es posible que deba instalar rlwrap través del administrador de paquetes de Cygwin.

    Intereting Posts