node.js / ES6 /类创build:SyntaxError:意外的保留字
我尝试在我的node.js / express应用程序上创build一个类。
它在基本的JS /原型模式下工作,例如:
function MyClass() { /* constructor code */ }; MyClass.prototype.myMethod = function() { /* method code */ }; module.exports = MyClass;
但我想要使用类,构造函数,扩展…关键字。
我试过了:
class MyClass { constructor() { /* constructor code */ } myMethod() { /* method code */ } }
但它不起作用,错误是:
class MyClass { ^^^^^ SyntaxError: Unexpected reserved word
我的命令行启动与所有和谐选项的应用程序:
node `node --v8-options | grep harmony | cut -d ' ' -f | xargs` my-app.js
一个想法正确启动我的应用程序?
你可以用io.js来做到这一点
iojs --use_strict --harmony_classes my-app.js
或与traceur node.js
var traceur = require('traceur'); traceur.require.makeDefault(function(file) { return file.indexOf('node_modules') == -1; }); require('./my-app').run();
确保在使用它们之前testing新的function,有些不支持。 编辑:您可以从这里检查兼容性列表
你需要一个更新版本的nodejs。 class
关键字在4.4.x中受支持 ,但是我个人认为它在v4.2.6中可用。 (不完全确定哪个版本的v8发布了它,这是什么会告诉节点版本。)
我有这个问题。
这是因为我下载了nodejs的源代码,而不是在我的Ubuntu上编译/编译它。 ./configure
然后make
和make install
。
出于某种原因,像class
和extends
ES6保留字是抛出SyntaxError:意外的保留字,即使使用--harmony
标志。
它解决了我下载linux的nodejs二进制文件( https://nodejs.org/download/ )。
现在,即使没有--harmony
旗帜,也能延续工作。
我相信这个问题来自我的build筑/编译过程。 出于某种原因,ES6添加内置或configuration不正确。
据我了解,二进制文件已经完全正确地build立在Linux上,因此ES6被正确添加和configuration。