如何将java导入es_NodeJS计划支持导入/导出es6(es2015)模块

Update 13 September 2017

NodeJS 8.5.0已发布,支持标志后面的mjs文件:

node --experimental-modules index.mjs

计划是删除v10.0 LTS版本的标志 .

Update 8 September 2017

并在 --experimental-modules 标志后面启用:

package.json

{

"name": "testing-mjs",

"version": "1.0.0",

"description": "",

"main": "index.mjs"

}

然后运行:

node --experimental-modules .

过时的信息 . 为了历史目的而留在这里 -

Update February 2017:

NodeJS的人已经确定最不好的解决方案是使用 .mjs 文件扩展名 . 从中得到的结论是:

换句话说,给定两个文件foo.js和bar.mjs,使用import * from'foo'会将foo.js视为CommonJS,而import * from'bar'会将bar.mjs视为ES6模块

至于时间表......

在当前时间点,在Node.js甚至可以开始构建可支持的ES6模块实现之前,仍然需要在ES6和虚拟机方面发生许多规范和实现问题 . 工作正在进行中,但需要一些时间 - 我们目前至少要看一年左右 .

Update October 2016:

Node.JS上的一位开发人员最近参加了TC-39 Session 并撰写了一篇关于阻截者的精彩文章,以实现Node.JS:

从中得出的基本结论是:

ES模块进行静态分析,评估CommonJS

CommonJS模块允许猴子修补导出,ES模块目前不允许

很难在没有某种形式的用户输入的情况下检测什么是ES模块以及什么是CommonJS,但他们正在尝试 .

*.mjs 似乎是最可能的解决方案,除非他们能够在没有用户输入的情况下准确检测ES模块

原始答案 -

这已经是相当长一段时间的烫手山芋 . 最重要的是,Node最终将支持用于导入/导出模块的ES2015语法 - 最有可能在spec for loading modules最终确定并达成一致时 .

这是持有NodeJS的a good overview . 本质上,他们需要确保新规范适用于Node,主要是条件,同步加载以及主要是异步的HTML .

目前没有人确切知道,但我想Node除了动态加载的新 System.import 之外还支持静态加载 import/export ,同时仍保留遗留代码的 require .

以下是有关Node如何实现此目标的一些建议:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值