为什么幻影,卡斯珀和流星需要自己的可执行文件?[英] Why do Phantom, Casper, and Meteor need their own executables?

问题描述

Phantom 和流星是在节点上构建的,Casper是在幻影底座建造的.为什么他们每个人都需要自己的独立可执行文件,而不是通过node.js?

(我发现它使它们更难使用,尤其是在Windows上.)

推荐答案

phantomjs与节点完全分开:

http://phantomjs.org/faq.html

问:为什么phantomjs不写为node.js模块?

a:简短的答案:"没有人可以为两个大师服务."

更长的解释如下.

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

每个node.js模块本质上是node.js核心的"从属",即"主".在当前状态下,Phantomjs(及其随附的WebKit)需要对所有事件进行完整的控制(在同步物中):事件循环,网络堆栈和JavaScript执行.

如果目的只是在node.js中运行的脚本直接使用phantomjs,则可以通过启动phantomjs流程并与之交互来实现这种"松散绑定".

casperjs是在节点顶部构建的,因此显然不是节点模块.尽管在这种情况下,您可以使用node spookyjs

流星实际上应该更紧密地与节点结合.有一个类似的框架 derby 用于用于模块的Derby .

本文地址:https://www.itbaoku.cn/post/1739905.html