是否可以将常规Javascript库转换为NodeJS库?

时间:2012-10-18 02:42:23

标签: javascript node.js canvas

我一直在使用Javascript库,即canvas-lib,我在服务器端使用Node.JS / Socket.io,因此我可以在客户端之间传递事件。

我正在使用一种架构,其中一次只允许一个客户端控制画布,因为我正在制作一种由移动设备控制并显示在第二个(更大)的“划痕”游戏屏幕。

您可以看到架构图here

问题是,目前画布交互是在客户端上针对该效果的脚本完成的,这会导致一些问题:

  • 无法缩放画布
  • 没有统一的时间限制计数器
  • 我必须在外部屏幕上手动加载页面

我的目标是:

  • 让服务器将时间传递给两个设备(或屏幕)
  • 将画布加载到移动设备上并缩放到外部屏幕(在新连接上,并在移动设备连接后自动完成,或者从队列中移出并进入当前活动状态)

为了实现这一点,我相信我必须让canvas-lib在节点上工作,那么我怎么能实现这一点,因为lib尚未准备好呢? 如何将常规库转换为节点库?

2 个答案:

答案 0 :(得分:1)

那么,

如果你正在开发一个专门用于浏览器的库,我就看不到为它制作Node包的任何意义。

但无论如何,请看一下Node Package Manager(简称NPM),它会在您需要开发一些Node库时为您提供帮助。

答案 1 :(得分:1)

我为使Fabric.js节点兼容所做的一些事情:

  • 使用node-canvas在节点环境中提供canvas API。
  • 提供(或阻止)对库可能正在使用的任何DOM对象的访问。见jsdom
  • 删除对专有(仅限浏览器)API的调用。见non-standard features
  • 调整库的测试套件以在节点下运行(如果它还没有)。请参阅mochaqunit
  • 运行测试套件并确保一切仍然按预期运行。
  • (可选)为方便起见,创建NPM包。

或者您可以使用已经为节点提供支持的库;)