Javascript 巴别塔节点不';你不认识es2015吗?

Javascript 巴别塔节点不';你不认识es2015吗?,javascript,node.js,babeljs,Javascript,Node.js,Babeljs,我正在尝试使用babel节点运行中继启动器工具包updateSchema.js。它似乎无法识别箭头功能: > SyntaxError: .../build/updateSchema.js: Unexpected token (10:9) 8 | 9 | // Save JSON of full schema introspection for Babel Relay Plugin to use > 10 | async () => { |

我正在尝试使用babel节点运行中继启动器工具包updateSchema.js。它似乎无法识别箭头功能:

> SyntaxError: .../build/updateSchema.js: Unexpected token (10:9)
   8 | 
   9 | // Save JSON of full schema introspection for Babel Relay Plugin to use
> 10 | async () => {
     |          ^
我尝试将预设的“stage-0”添加到“.babelrc”中,它修复了该错误,但我得到了:

SyntaxError: .../build/updateSchema.js: Unexpected token (23:1)
  21 |     );
  22 |   }
> 23 | }();
     |  ^
这是否不承认es2015?或者这是我的模式中的错误?该脚本来自中继启动器工具包

其他一切都运行良好,“巴别塔节点”似乎与es2015中编写的应用程序的其余部分没有问题

编辑:
我现在试着下载中继启动器套件并运行“npm运行更新模式”,它可以开箱即用。

您在入口点需要
babel core

首先
npm安装--保存dev babel core

然后打开应用程序的入口点文件


然后由
require(“巴别塔核心”)要求
babel核心

此语法适用于babel 5,但应引发语法错误,因为它是非标准的arrow函数调用语法:

因此,修复方法如下所示:

(async () => {
  var result = await (graphql(Schema, introspectionQuery));
  if (result.errors) {
    console.error('ERROR: ', JSON.stringify(result.errors, null, 2));
  } else {
    fs.writeFileSync(
      path.join(__dirname, '../data/schema.json'),
      JSON.stringify(result, null, 2)
    );
  }
})();

我认为这是因为它认为你调用函数而不是声明它。Arrow函数是匿名的,因此您应该删除
async
,然后如果您想继续使用该函数,您应该用另一个括号将其括起来,如:
(()=>{/*您的代码*/}())