NodeJS和会在导入时给出SyntaxError

时间:2014-04-14 21:17:45

标签: javascript node.js ecmascript-harmony

我正在使用带有标志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

2 个答案:

答案 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