¿Alguien configuró algo así para él usando el node.js REPL existente? No pensé en una forma rápida de hacerlo.node.js - evaluando a un proceso en vivo
La forma en que lo hago hoy en día es el uso de emacs y esto: https://github.com/ivan4th/swank-js
Este módulo se compone de:
A BABA-js complemento a emacs que, en combinación con js2-mode , permite simplemente emite un CMx en alguna parte del cuerpo de una función DEF - y fuera va cadena de la función al servidor ..
Swank-js (sí, que c Uld eval desde su local de la máquina- directamente a un proceso remoto) escrito en Node.js - Se recibe la cadena de la función que eval'ed y en realidad evals que
toda una parte que le permite conectarse a otro el puerto de dicho servidor con su navegador y luego le permite manipular el DOM en ese navegador (que es bastante increíble, pero no es relevante)
Mi solución utiliza BABA-js en el lado Emacs y que require (' swank- js ') en mi archivo app.js
Ahora .. Tengo varios problemas y preguntas con respecto a mi solución o otros posibles:
Q1: ¿Esto es exagerar? ¿Alguien tiene una forma secreta de evaluar cosas de nano en su proceso en vivo?
P2: tuve que cambiar la forma Swank-js se EVALing .. es utilizado algún tipo de magia negro como esto:
var Script = process.binding('evals').Script;
var evalcx = Script.runInContext;
....
this.context = Script.createContext();
for (var i in global) this.context[i] = global[i];
this.context.module = module;
this.context.require = require;
...
r = evalcx("CODECODE", this.context, "repl");
que, por lo que entiendo, simplemente copia las variables globales para el nuevo contexto, y después de eval, no cambia las funciones originales definiciones - SOOO .. Estoy utilizando simplemente "eval" y IT OBRAS.
¿Tiene algún comentario al respecto?
Q3: Para volver a evaluar una función, tiene que ser una función GLOBAL - ¿Es una mala práctica tener todas las definiciones de funciones como globales (tipo clojure)? ¿Crees que hay otra manera de hacer esto?
En realidad, estoy muy interesado en esta pregunta también. Sospecho que jugar con la magia negra podría ayudar a algunas respuestas. ¡Sé lo que voy a hacer hoy! –