NodeJS harmony 在使用 import 时出现 SyntaxError

15

我正在使用ES6的node,带有--harmony子进程标志,但在导入时第一步就失败了。有什么想法吗?

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

你在尝试使用哪个版本的Node? - Lloyd
2
不相关,但是为什么你要从名为child_process的标识符中导入字符串“spawn”? - Rick
2个回答

6

并非所有ES6的特性都在v8中得到支持,因此在Node中也是如此。我相信模块就是其中之一。

您可能会发现这个兼容性矩阵很方便:http://kangax.github.io/es5-compat-table/es6/

您可以使用Traceur编译器来实现,尽管并不是所有东西都已经使用模块进行了实现它似乎是这样的

编辑于2015年12月-由于对此答案的一些评论表明,在此时点上,Babel已成为首选的ES6转换器。当我写原始答案时,Babel仍然被称为6to5,并且不像Traceur那样流行。如今,Babel是首选选择。


1
你可以使用npm中的babel包。 - langpavel
2
要几乎完全兼容ES6标准,您可以安装babel-nodenpm install -g babel-node,然后使用babel-node运行您的代码。如果此信息过时,请参阅链接 - Rakan Nimer
1
重要提示:包名为 babel-cli,而不是 babel-node - Jebediah

0

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