我正在尝试新的巴别塔的巴别塔预设php (https://gitlab.com/kornelski/babel-preset-php#php7-to-es7-syntax-translator)。我在自述文件中做了所有的事情,我用npm i -S babel-preset-php安装了预设。然后我创建了一个包含以下内容的.babelrc文件;
{
"presets": ["php"]
}已使用npm i -g babel-cli安装cli。然后,我创建了一个简单的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不是很有经验,所以你知道会发生什么吗?
发布于 2017-07-16 01:09:33
编辑:好的,我刚刚意识到你是在一个类的外部调用一个公共函数。这不是正确的PHP。您不能在类的外部将函数定义为public。你的PHP代码是错误的。
发布于 2017-07-25 04:06:31
错误甚至在触及PHP代码之前就已经发出了。事实上,它是在babel-preset-php本身的this particular line上出错的:
return {
visitor: {
Identifier(p) { // This is the invalid line
if (p.node.name != 'Exception' || p.scope.hasBinding("Exception")) {
return;
}此预设使用ECMAScript 2015中添加的速记对象初始值设定项。这里可能发生的情况是,您的本地Javascript环境不支持ES2015语法。
我建议将node和babel更新到最新版本,然后重试。
https://stackoverflow.com/questions/45120663
复制相似问题