小编aya*_*les的帖子

node.js - 评估实时进程

有没有人使用现有的node.js REPL为自己设置这样的东西?我没想到要快速做到这一点.

我今天这样做的方式是使用emacs和这个:https: //github.com/ivan4th/swank-js

该模块由以下部分组成:

  1. 一个SLIME-js插件到emacs,结合js2-mode,让你只需在函数def的主体中的某个地方发出一个CMx,然后关闭函数的字符串到...

  2. 用Node.js编写的Swank-js服务器(是的,您可以从本地计算机直接评估到远程进程) - 它接收您评估的函数的字符串并实际上将其删除

  3. 整个部分允许您使用浏览器连接到该服务器上的另一个端口,然后让您在该浏览器上操作DOM(这非常了不起但不相关)

我的解决方案在emacs端使用SLIME-js我需要('swank-js')在我的app.js文件上

现在..我有几个关于我的解决方案或其他可能的问题和问题:

Q1:这有点过头了吗?有人有秘密的方式来评估从纳米到他的实时过程的东西吗?

Q2:我不得不改变swank-js评估的方式..它使用了某种黑魔法:


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");
Run Code Online (Sandbox Code Playgroud)

据我所知,只是将全局变量复制到新的上下文中,并且在eval上,不会更改原始函数定义 - SOOO ..我只是使用简单的"eval"和IT WORKS.

你对此有何评论?

问题3:为了重新评估函数,它需要是一个GLOBAL函数 - 将所有函数定义都设置为全局(类似clojure)是不好的做法?你认为还有另一种方法吗?

eval swank commonjs node.js read-eval-print-loop

16
推荐指数
1
解决办法
3913
查看次数

node.js缓存清除技术

渲染引用静态文件(.js,.css)的html文件时 - 如何处理缓存清除?你每次更改文件时手动更改blabla.css?v = VERSIONNUMBER?你有一些基于文件的mtime的自动机制吗?

caching node.js

6
推荐指数
1
解决办法
4318
查看次数

标签 统计

node.js ×2

caching ×1

commonjs ×1

eval ×1

read-eval-print-loop ×1

swank ×1