HeXium 介绍

基本信息

  • 动机:为 heX 开发者提供一个类似传统浏览器中开发及调试的环境,以及一个可以在 Chrome developer tools 中调试 Node.js 代码的环境
  • 目标:跨平台的囊括传统 web 浏览器及 Node.js 甚至更多 JavaScript 宿主环境的开发及调试解决方案
  • 名称由来:heX + Chromium = HeXium
  • 核心组成:ChromiumNode.js
  • License:New BSD
  • 项目首页:http://hex.youdao.com

与 heX 之间的异同

  • 相同
    • 同一套源代码
    • Chromium 的版本
    • Node.js 的版本
    • 架构(IPC,以及融合 Node.js 的方式等)
    • 跨平台性
  • 不同
    • 进程模型(HeXium 仅支持多进程模式)
    • 应用程序入口
    • 不支持可插接式的 Node.js
    • 没有清单文件(Manifest)

HeXium 对比 Chromium 增加的内容

  • Node.js:包括 node、libuv 的动态库。
  • auto-idle-hidden-view-node-event-loop 开关:开启后,处于非激活状态下(document.webkitHidden == false)的页签中的 Node.js 事件循环会进入休眠状态,在执行完当前的异步任务后挂起。
  • current-working-directory 开关:为整个浏览器设置默认的工作路径。工作路径优先级关系请见下方 设置工作路径 部分。

设置工作路径

工作路径将会影响 Node.js 的工作(包括文件系统操作、模块加载等)。默认情况下,HeXium 的工作路径为:

  • Windows:exe 所在路径。
  • Mac OS X:APP 包中的资源路径,一般为 Content/Resources

若 URL 为 file 协议的,则工作路径会自动被定位到 file 协议所指的路径,如 URL 为 file:///Users/hex/test.html,则工作路径为 /Users/hex

若设置了 current-working-directory 开关,则工作路径会被强行设置在开关所设置的路径上。

若在代码中使用 process.chdir(PATH),则工作路径会被设置在 PATH 所指的路径上,而无视之前的所有设定。

所以工作路径的优先级从高到低分别是:

  1. Node.js 的 process.chdir(PATH) 传入的 PATH 路径
  2. current-working-directory 开关所指路径
  3. file 协议下的路径
  4. HeXium 默认工作路径

FAQ

为什么要提供 HeXium

虽然 heX 中通过远程调试端口提供了 web 开发者工具,但更多的时候,web 开发者更希望能够在一个比较传统的更贴近日常使用的浏览器的环境中进行开发及调试。所以基于 heX,我们提供了一个浏览器——HeXium。

HeXium 由什么构成

  • HeXium 基于 Chromium,并将 Node.js 融入其中。
  • HeXium 与 heX 使用完全相同的同一套源代码,通过不同的批处理命令来生成对应的工程文件,从而编译出 HeXium 或者 heX 的二进制版本。
  • HeXium 与 heX 具备完全相同的架构,以及融入 Node.js 的方式,所以除了 heX 中特有的 hex 对象中的 API,两者运行相同的代码可以得到相同的结果。

如何为 HeXium 设置开关

基于 Chromium 内核的浏览器的开关均为 “”开头,单词之间用“-”分割,如:--how-are-you。开关之间通过空格分隔。具有赋值的开关的格式为:--how-are-you=fine

  • Windows:为 chrome.exe 创建一个快捷方式,进入快捷方式属性,在“目标”文本框中最后输入开关。
  • Mac OS X:进入终端,打开浏览器的 APP 包,进入 Content/MacOS,运行 ./Chromium --how-are-you

下载