Node-CEF (NC.js) – 为你的 CEF 项目搭载上 Node.js 模块

前言

说起来 SAO Utils 也有好几个月没有更新了,你们肯定以为这个找不到工作的死宅肯定进入了 吃饭—睡觉—追番—打游戏 的 NEET 模式对吧?
–没错, 你们还真猜对了。咳咳……

简单来说,这个项目最初的目的就是为了给 SAO Utils 的网页引擎加上适用于 JavaScript 的包管理系统,以及更多的可以让网页挂件开发者使用的系统接口,而无需学习高深的 C艹 或 COM 知识。之后又由于各种各样的原因,这个目的最后以这个 CEF 扩展库 形式实现了,下一个版本的网页引擎插件马上会集成本功能。

其实一开始要我写这篇日志我是拒接的,因为我博客的读者基本都没兴趣看这个,只是因为 Google 索引不到 Github 的项目才在博客写方便索引的。

  • 项目地址https://github.com/GPBeta/nc.js
  • 什么是 Node-CEF ?

    Node-CEF 作为 CEF 的扩展库,为你的 CEF3 项目提供 Node.js 底层的 C++ Binding。换句话说,通过使用 Node-CEF,可以使你的 CEF3 应用拥有 Node.js 大部分的功能,当然基本的 `require()` 函数及模块系统也包含在内。

    为什么选择 Node-CEF ?

    一直以来,Node.js + Web App 的开发模式都被 Node-Webkit(NW.js),Electron 等独立应用开发框架独占,也就是说,如果你希望在自己现有的应用上使用某些 Node.js 特性的话,不得不砍掉整个项目重新使用上述框架重新开发。这样一来就非常尴尬了,工作量大不说,某些特殊的需求还无法满足……而这个项目则是为解决这个问题而诞生了。

    当然,把 Node.js 跟 CEF3 的源代码杂交到一起的项目很早就出现了,例如 Cefode 这个。然而,由于这些项目过于繁多的依赖(Node.js 和 CEF3,一个大型一个巨型项目),没有一个强大的开发团队是不太可能维护下去的,所以这个项目也废弃了很长时间。同时,这类合体项目都是基于源码级别的,这意味着用户必须花数小时自己去编译一个 Chromium 级别的项目,或者由项目团队生成各个平台的 Binary……

    Node-CEF 则是基于相对稳定的 CEF3 DLL Wrapper API,理论上替换任何版本、任何分支、任何 Chromium 核心的 CEF3 分发库都可以直接支持,而无需对源码做任何修改。可以,这很东方

    Node-CEF 能做什么?

    • 加载任意兼容 Node.js 的模块;
    • 使用 npm 管理及安装包;
    • 轻易地增加建模块的 C++ 绑定接口;
    • 使用 Chrome DevTools 对模块进行 debugging。

    目前可用的 Node.js 内建模块请参见 Github 项目主页。

    Node-CEF 目前仅提供 Visual Studio 2005 的编译项目,理论上支持 Windows, Mac, Linux,以及 CEF3 所有分支,不过由于没有时间去测试其他分支和平台,暂时无法提供支持。如果你有这个兴趣或能力,请加入到本项目!

    遇到问题?

    我发现了 Bug

    请在本页留言或在 Github 提交一个 Issue。

    我想加入到本项目

    请直接在 Github 发起 Pull Request。

      • Ju1y
      • 2017/06/13 2:45下午

      GPBeta :
      GTA5 d≡ω≡.

      告诉我你的steam号呗,我加你好友

      • 啊哈
      • 2017/02/24 12:21下午

      23333

      • HigHwind
      • 2016/08/29 11:22上午

      GP,能把你的CEF资料给我吗,有关于WebUI部分的吗?谢谢

    1. gp 把你打的游戏介绍一下吧2333333 最近我也进入了NEET模式……但是不知道玩什么

    2. 还以为是进入现充模式了23333

      • MineLight
      • 2016/07/22 9:38上午

      苦逼的c#程序猿在围观

      • YiKi
      • 2016/07/10 10:10上午

      作为一个计算机学院的大学生,逻辑上可以理解说的什么,键盘上完全不能理解的菜鸡路过。。。

      • 哑然
      • 2016/07/08 3:27下午

      GP君你是不是把href打成了herf

    1. 暂无 Trackback

    

    return top