Electron和Babel 6的异步/等待会抛出意外令牌。

4
我想在我的Electron应用程序中使用ES7的async/await功能,但似乎无法正常工作。在使用npm start命令后,它会给我一个语法错误:unexpected token function。 Electron版本为v0.37.6,Node版本为v5.11.0(稳定版),Windows 10 x64。 main.js
'use strict';

require("babel-core/register");
require("babel-polyfill");

(async function() {
  await console.log("test");
})()

package.json(简略版)

"devDependencies": {
  "babel": "^6.5.2",
  "babel-cli": "^6.7.7",
  "babel-core": "^6.7.7",
  "babel-eslint": "^6.0.3",
  "babel-plugin-syntax-async-functions": "^6.5.0",
  "babel-plugin-transform-async-to-generator": "^6.7.4",
  "babel-plugin-transform-regenerator": "^6.6.5",
  "babel-polyfill": "^6.7.4",
  "babel-preset-es2015": "^6.6.0",
  "babel-preset-stage-3": "^6.5.0",
  "electron-debug": "^0.6.0",
  "electron-prebuilt": "^0.37.0",
  "eslint": "^2.8.0"
}

.babelrc

{
  "presets": ["es2015", "stage-3"],
  "plugins": ["transform-async-to-generator", "syntax-async-functions", "transform-regenerator"]
}

请问您知道我的配置文件等缺少了什么吗?

编辑

我也尝试在require()后面添加一些import,但是结果是

未预期的标记import

似乎Babe根本没有被加载..

2个回答

2

最终我用两个简单的步骤解决了这个问题:

  1. 将我的 Babel 代码放在单独的文件中

index.js

'use strict';

require('babel-core/register');
require("babel-polyfill");
require("./src/main");
  1. 更新了package.json,以在npm start时执行它。

package.json

"scripts": {
  "start": "electron index.js"
},

-2

请在您的帖子中提供答案(解决问题的方式),而不仅仅是链接(http://meta.stackexchange.com/q/8231/183280)。您可以[编辑]您的答案。 - Bergi
虽然链接提供了答案,但建议您将解决方案的主要部分添加到您的问题中,因为无法保证该页面会一直存在。 - Ricardo Souza
1
@SashaBuzin 谢谢,我之前看过这篇文章,但即使是那个例子对我也不起作用...但是出现了不同的异常:意外的令牌导入。 - Bauer01

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接