Phantom 和Meteor是基于Node构建的,而Casper则是从Phantom构建的。为什么他们每个人都需要自己独立的可执行文件,而不是通过Node.js成为require
的库?
(我发现这使得它们更难以使用,特别是在Windows上。)
答案 0 :(得分:7)
phantomjs与节点完全分开:
问:为什么PhantomJS不能写成Node.js模块?
答:简答:“没有人可以为两位大师服务。”更长的解释如下。
截至目前,这样做在技术上非常具有挑战性。
每个Node.js模块本质上是Node.js核心的“奴隶”,即“主”。在当前状态下,PhantomJS(及其包含的WebKit)需要对所有内容进行完全控制(在同步事物中):事件循环,网络堆栈和JavaScript执行。
如果只是想在Node.js中运行的脚本中使用PhantomJS,可以通过启动PhantomJS进程并与之交互来实现这种“松散绑定”。
CasperJS建立在节点之上,因此它本身显然不是节点模块。虽然在这种情况下,您可以将SpookyJS与节点一起使用。
流星真的应该与节点紧密结合。有一个类似的框架Derby被构建用作模块。