Babel JS babel-preset-php错误

我刚刚尝试新的Babel的babel-preset-php( https://gitlab.com/kornelski/babel-preset-php#php7-to-es7-syntax-translator )。 我在README文件中做了所有事情,我用npm i -S babel-preset-php安装了预设。 然后我创build了一个.babelrc文件,内容如下:

 { "presets": ["php"] } 

npm i -g babel-cli安装了npm i -g babel-cli 。 然后我创build了一个简单的PHP文件,它只包含一个简单的函数:

 <?php function addCalculator($x, $y) { return $x + $y; } 

并尝试运行babel number.php -o file.js 。 但是我在脚本的执行中遇到一个错误:

 /home/claudio/Documents/Development/babel/node_modules/babel-preset-php/lib/plugins.js:6 Identifier(p) { ^ SyntaxError: Unexpected token ( (While processing preset: "/home/claudio/Documents/Development/babel/node_modules/babel-preset-php/index.js") at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/claudio/Documents/Development/babel/node_modules/babel-preset-php/index.js:1:79) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) 

对于nodejs和npm我不是那么熟悉的,所以对于可能发生的事情有什么想法?

编辑:好吧,我只是意识到你正在调用一个类之外的公共职能 。 这不正确的PHP。 你不能在一个类之外定义一个公共的函数。 你的PHP代码是错的。

甚至在触及你的PHP代码之前,这个错误正在被发射。 事实上, 这是在babel-preset-php本身这一行的错误:

 return { visitor: { Identifier(p) { // This is the invalid line if (p.node.name != 'Exception' || p.scope.hasBinding("Exception")) { return; } 

此预设使用ECMAScript 2015中添加的速记对象初始值设定项。这里可能发生的情况是您的本地Javascript环境不支持ES2015语法。

我会build议更新nodebabel到最新版本,并再次尝试。