Node.JS 中的 ECMAScript 6 模块

12

Node.JS v0.11.3 声称支持 ECMAScript 6 模块,并通过参数 --harmony_modules 来启用。

我尝试了各种示例,例如以下内容。

module math {
    export var pi = 3.141593;
}

如何使用语法在Node.JS中启用模块?


2
你的链接无法使用。 - user2437417
@CrazyTrain:它只有第二次才能正常工作 :-/ - Bergi
1
似乎Chrome还不支持模块化,根据这个可以推断出V8引擎整体上也不支持模块化吗? - gustavohenke
看起来NodeJS正在研究这个问题:git#5 - Endless
2个回答

14

V8中的模块实现是不完整的。启用--harmony-modules后,有解析支持,但实际功能的支持被搁置了。原因是ES6模块的实际工作方式规范一直在制定中,尚未完全确定。

Continuum中的实现(来自Crazy Train答案的链接截图)可以追溯到2012年11月的临时规范,由于ES6模块规范的持续变化,现在已经过时。这就是为什么V8开发人员暂停了对模块支持的开发。

看起来模块规范正在接近稳定(虽然我认为我们还会看到一些小的改进),我认为(至少希望)我们将在接下来的6个月内看到SpiderMonkey和V8推进实现。


有用的链接:

3
您可以使用Continuum,它是一个用(当前的)JavaScript编写的ES6虚拟机。

enter image description here


@Randomblue:例子就在你的问题中。听起来像是你正在寻找一个测试环境。 - user2437417
1
我实际上正在寻找一个特别适用于V8的示例。 - Randomblue
2
@Randomblue:听起来像是V8不支持ECMAScript 6模块的最新语义。换句话说,就目前而言,在V8中无法运行ECMAScript模块,因为它们具有一些不符合规范的实现。 - user2437417
你有没有想过这个“不兼容”的实现看起来是什么样子? - Randomblue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接