我正在使用带有标志child_process --harmony
的ES6测试节点,但是在导入时它在第一步失败了。有什么想法吗?
import {'spawn'} from child_process;
console.log(spawn);
我跑:
node --harmony test.js
我得到了:
:1
(function (exports, require, module, __filename, __dirname) { import {spawn} f
^^^^^^
SyntaxError: Unexpected token import
答案 0 :(得分:6)
并非v8中支持ES6的所有功能,因此在Node中也支持。我相信的模块就是其中之一。
您可能会发现此兼容性矩阵方便:http://kangax.github.io/es5-compat-table/es6/
您可以使用Traceur compiler执行此操作,但并非所有内容都通过模块实现it appears
2015年12月编辑 - 正如对此答案的一些评论所表明的那样,Babel已经成为首选的ES6转换器。当我写下我的原始答案时,Babel仍被称为6to5,并不像Traceur那样受欢迎。今天,巴贝尔是首选。
答案 1 :(得分:0)
尝试使用--experimental-modules
标志
早在2017年,Node.js 8.9.0就提供了对 ECMAScript模块,以其导入和导出语句而闻名。这个 支持是--experimental-modules标志。
https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff