node.js / ES6 / class creation : SyntaxError: Unexpected reserved word

核能气质少年 提交于 2019-11-29 03:29:49

You can do this with io.js

iojs --use_strict --harmony_classes my-app.js

Or on node.js with traceur

var traceur = require('traceur');
traceur.require.makeDefault(function(file) {
  return file.indexOf('node_modules') == -1;
});

require('./my-app').run();

Make sure to test the new features before using them, some are not supported. Edit: You can check the compatibility list from here

You need a newer version of nodejs. The class keyword is supported in 4.4.x, but I'm personally seeing it work in v4.2.6. (Not entirely sure what version of v8 released it, which is what would tell the node version.)

I had this problem.

It was caused because I downloaded nodejs' source code than built/ compiled it on my Ubuntu. ./configure then make and make install.

For some reason the ES6 reserved words like class and extends were throwing SyntaxError: Unexpected reserved word, even when using --harmony flag.

It was solved by me downloading the nodejs binaries for linux (https://nodejs.org/download/).

Now class and extends work even without --harmony flag.

I believe the issue came about from my building/ compiling process. For some reason the ES6 additions were not built or configured properly.

The binaries, to my understanding, are built completely and correctly for linux already and therefore the ES6 is added and configured correctly.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!