Phantom,Casper和Meteor为什么需要自己的可执行文件?
幻影 和meteor都是build立在节点之外的,卡斯帕是build立在幻影之外的。 为什么他们每个都需要自己单独的可执行文件,而不是通过Node.js来创build库?
(我发现这使得它们更难以使用,特别是在Windows上)。
phantomjs与节点完全分离:
问:为什么PhantomJS不能写成Node.js模块?
答:简短的回答:“没有人可以服务两位大师。”
更长的解释如下。
到目前为止,这在技术上是非常具有挑战性的。
每个Node.js模块实质上是Node.js核心的“奴隶”,即“主”。 在当前状态下,PhantomJS(及其包含的WebKit)需要完全控制(同步)事件:事件循环,networking堆栈和JavaScript执行。
如果目的只是从Node.js中运行的脚本中使用PhantomJS,那么可以通过启动PhantomJS进程并与其进行交互来实现这种“松散绑定”。
CasperJSbuild立在节点之上,所以显然它本身不是一个节点模块。 虽然在这种情况下,你可以使用SpookyJS和节点。
meteor真的应该和节点更紧密地结合在一起。 Derby有一个类似的框架可以用作模块。