试图让Facebook发射器工作

问题描述:

从节点命令行尝试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')之前'' –

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

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