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

mpe*_*pen 5 node.js phantomjs casperjs meteor

幻影和Meteor是由Node构建的,而Casper是由Phantom构建的.为什么他们每个人都需要自己独立的可执行文件,而不是require通过Node.js的库?

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

She*_*tJS 7

phantomjs与节点完全分开:

http://phantomjs.org/faq.html

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

答:简短的回答是:"没有人能为两位大师服务."

更长的解释如下.

截至目前,这样做在技术上非常具有挑战性.

每个Node.js模块本质上是Node.js核心的"奴隶",即"主".在当前状态下,PhantomJS(及其包含的WebKit)需要对所有内容进行完全控制(在同步事物中):事件循环,网络堆栈和JavaScript执行.

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

CasperJS建立在节点之上,因此它本身显然不是节点模块.虽然在这种情况下,您可以将SpookyJS与节点一起使用.

流星真的应该与节点更紧密地耦合.Derby构建了一个类似的框架用作模块.