nodejs 8导入模块 - 需要还是导入?

时间:2017-07-08 11:49:09

标签: node.js import babel

想知道我们如何在node.js 8中导入模块 - 我们还在使用require吗?

或者我们仍然需要babel使用import

我一直在四处寻找,但似乎没有答案。如果我们仍然需要使用require,为什么不能实现import节点?

1 个答案:

答案 0 :(得分:37)

UPDATE-2018.11.15↓

简短回答
我们仍在使用require

答案很长
ESM加载已部分登陆于2017年9月发布的节点8.5.0。因此,它在一段时间内作为实验性功能已成为规范的一部分:请参阅API文档here。注意事项包括需要--experimental-modules标志以及对模块使用新的.mjs扩展名。

在ESM加载稳定且功能齐全之前,仍然需要在V8中进行更改,以及我的原始答案,如果您不这样做,我仍然会建议坚持使用CommonJS require。已经将Babel用于其他东西

有关更多教学解释,请参阅此post

以前的答案↓

这两种实现方式完全不同,因此除了眼睛之外还有更多内容

需要注意的是,规范(一直到V8)仍然存在问题,因此import目前无法在没有使用转换程序的情况下在Node中实现

contributor之一

中查看此评论(2017年2月)
  

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

请记住,转换器只是将ES6模块语法转换为CommonJS模块语法,因此目前没有性能优势。换句话说,如果你还没有Babel管道,那么除了从主动的句法角度来看,创建一个只是为了使用新的import语法并没有多少动力

有关实施方式有何不同的详细信息,see this write up

相关问题