2016-04-21 17 views
0

從節點命令行嘗試Facebook發射器時出現以下錯誤。我嘗試在沒有Bable的情況下在EventEmitter附近刪除{},然後使用Bable和下面的代碼。試圖讓Facebook發射器工作

EventEmitter

設置,按:Using Babel. How to use Babel with your tool of choice

npm install fbemitter 
npm install babel-register 
npm install babel-preset-es2015 --save-dev 
echo '{ "presets": ["es2015"] }' > .babelrc 

節點錯誤:

$ node emit-node.js 
/Users/carlf/Documents/dev/test/emitter/emit-node.js:3 
var {EventEmitter} = require('./node_modules/emitter'); 
    ^
SyntaxError: Unexpected token { 

我的代碼:

require("babel-register"); 

var {EventEmitter} = require('./node_modules/emitter'); 
var emitter = new EventEmitter(); 

emitter.addListener('event', function(x, y) { console.log(x, y); }); 
emitter.emit('event', 5, 10); // Listener prints "5 10". 

FILE:.bablerc

{ "presets": ["es2015"] } 
+1

你的babel設置不理解解 –

+0

IIRC,你必須在*之前加載'babel-register' * *需要使用ES6語法的第一個模塊 – Bergi

+0

不是我在做什麼,'require(「babel ''在'var {EventEmitter} = require('./ node_modules/emitter')之前'' –

回答

1

To include it you will need to require it at the top of the entry point to your application.

如果使用通天註冊,因此不適用於在調用require("babel-register");本身的文件轉換。因此,您需要將該呼叫移至單獨的文件,然後調用es2015代碼。

// file1.js 
require("babel-register"); 
require('./file2.js'); 

// file2.js 
// other code 

它可能會更清楚 - 甚至可能是像我上面發佈的例子。隨時發送公關或稍後我會解決問題。

+0

好的,我得到了它的工作。 –