4491_windows_chakra_node.txt
Edited: Thursday 1 May 2025

Windows 与 Chakra Node

在 2016 年 1 月 9 日 , 微 软 提 交 了 一 个
pull request (PR) , 使 得 Node 可 以
在 微 软 的 ChakraCore (JavaScript)
引 擎 中 运 行 。 同 时 微 软 创 建 了 一 个 可
实 现 大 部 分 V8 核 心 API 的 适 配 器 , 允
许 Node 在 ChakraCore 上 无 障 碍 地 运
行 。

让 Node 运 行 在 除 了 V8 之 外 的 引 擎
上 , 是 一 件 很 有 意 思 、 也 很 有 吸 引 力
的 事 情 。 虽 然 V8 似 乎 在 主 导 着 Node
的 开 发 , 至 少 对 Node 目 前 的 版 本 来 说
是 这 样 的 , 但 从 技 术 上 来 说 , 并 没 有
硬 性 需 求 说 Node 必 须 基 于 V8 开 发 。
“ 毕 竟 , 最 新 的 Node 版 本 更 侧 重 于 增 强
__Node APl, 并 结 合 新 的 ECMAScript
创新

当 我 其 试 了 一 下 这 个 用 ES6 与 的 反 射
和 代 理 的 例 子 时 , 我 发 现 更 有 意 思了 :
“use strict「
/ example,courtesy of Dr,Axe1
Rauschmayer
/ http://www.2aLity.com/2814/12/
es6-proxieSs ,html
Let target = { 仁 ;
Let handter = t
get(target,propkKey,
receiver) t
consoLe4. Log( 「get , +
propKey ) ;
return 123 }
]

Let proxy = new Proxy (target ,
handter) ;
ConsoLe, Log (proxy ,foo0) ;
proxy,bar = “abc 「 }
consoLe, Log(target.bar) }

它 在 ChakraCore Node 中 是 生 效 的 ,
但 在 V8 _Node 中 却 不 生 效 ( 即 使 是 最
新 版 本 的 V8) 。ChakraCore 开 发 人
员 声 称 它 的 另 一 个 优 势 是 优 美 地 实 现
了 最 新 ECMAScript 中 的 增 强 功 能 。

目 前 ,Chakra C ore 仅 适 用 于
Windows, 并 提 供 了 树 莉 派 二 进 制 文
件 。 同 时 开 发 者 承 诺 Linux 版 本 将 很 快
出 现 。

Backlinks