Phantom,Casper和Meteor为什么需要自己的可执行文件?

幻影 和meteor都是build立在节点之外的,卡斯帕是build立在幻影之外的。 为什么他们每个都需要自己单独的可执行文件,而不是通过Node.js来创build库?

(我发现这使得它们更难以使用,特别是在Windows上)。

phantomjs与节点完全分离:

http://phantomjs.org/faq.html

问:为什么PhantomJS不能写成Node.js模块?

答:简短的回答:“没有人可以服务两位大师。”

更长的解释如下。

到目前为止,这在技术上是非常具有挑战性的。

每个Node.js模块实质上是Node.js核心的“奴隶”,即“主”。 在当前状态下,PhantomJS(及其包含的WebKit)需要完全控制(同步)事件:事件循环,networking堆栈和JavaScript执行。

如果目的只是从Node.js中运行的脚本中使用PhantomJS,那么可以通过启动PhantomJS进程并与其进行交互来实现这种“松散绑定”。

CasperJSbuild立在节点之上,所以显然它本身不是一个节点模块。 虽然在这种情况下,你可以使用SpookyJS和节点。

meteor真的应该和节点更紧密地结合在一起。 Derby有一个类似的框架可以用作模块。