2014-04-14 81 views
14

我用ES6測試了帶有標誌child_process --harmony的節點,但在導入時第一步失敗。有任何想法嗎?NodeJS和諧在導入時給出了SyntaxError

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

你嘗試使用哪個版本的節點? – Lloyd

+2

不相關,但爲什麼要從稱爲'child_process'的標識符導入字符串「spawn」? – Rick

回答

6

不ES6的所有功能在V8的支持,從而在節點。我相信這些模塊就是其中之一。

您可能會發現這種兼容性矩陣方便:http://kangax.github.io/es5-compat-table/es6/

您可以使用Traceur compiler要做到這一點,雖然不是一切都與模塊尚未it appears

編輯在2015年12月實施 - 如一些評論這個答案建議,在這一點上,Babel已經成爲首選的ES6編譯器。當時我寫了我的原始答案,巴貝爾仍然被稱爲6to5,並沒有Traceur那麼受歡迎。今天,Babel是最佳選擇。

+0

你可以使用'babel'包npm – langpavel

+1

爲了與ES6標準幾乎完全兼容,你可以安裝babel-node'''npm install -g babel-node''',然後用babel-node運行你的代碼。如果這些信息變得過時,這裏是[鏈接](https://babeljs.io/docs/setup/)。 – user1128896