babel-node无法识别es2015?

时间:2015-11-30 06:55:28

标签: javascript node.js babeljs

我正在尝试使用babel-node运行relay-starter-kit updateSchema.js。它似乎无法识别箭头功能:

--device /dev/video0

我已尝试将预设“stage-0”添加到“.babelrc”,以修复该错误,但我得到了:

> SyntaxError: .../build/updateSchema.js: Unexpected token (10:9)
   8 | 
   9 | // Save JSON of full schema introspection for Babel Relay Plugin to use
> 10 | async () => {
     |          ^

这不承认es2015吗?或者我的架构中出现错误?脚本"updateSchema.js"来自relay-starter-kit。

其他一切运行良好,“babel-node”似乎与我在es2015中编写的应用程序的其余部分没有问题。

编辑: 我现在尝试下载relay-starter-kit并运行“npm run update-schema”,它开箱即用。

2 个答案:

答案 0 :(得分:0)

您是否在入境点需要babel-core

首先npm install --save-dev babel-core

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

然后babel-core

需要require("babel-core");

答案 1 :(得分:0)

这个语法适用于babel 5,但它应该抛出语法错误,因为它是一个非标准的箭头函数调用语法:arrow function discussion

所以,修复是这样的:

(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)
    );
  }
})();