无法在 Chrome63 中使用 es6 导出关键字

Unable to use es6 export keyword in Chrome63

我正在尝试在我的 test.js 文件中使用 export 关键字。 test.js 文件非常简单。

const foo = Math.PI;
export { foo };

我正在使用 karma 进行测试。我的 Chrome 版本大于 61,如下面的日志所示。 export 语法在大于 61 的 chrome 版本中得到完全支持,因此上面的代码应该可以工作但失败了。

$ karma start --browsers Chrome
01 10 2017 12:29:37.346:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
01 10 2017 12:29:37.350:INFO [launcher]: Launching browser Chrome with unlimited concurrency
01 10 2017 12:29:37.357:INFO [launcher]: Starting browser Chrome
01 10 2017 12:29:38.288:INFO [Chrome 63.0.3205 (Mac OS X 10.11.6)]: Connected on socket PV-MAe-R6vm4JntCAAAA with id 24009783
Chrome 63.0.3205 (Mac OS X 10.11.6) ERROR
  Uncaught SyntaxError: Unexpected token export
  at test/test.js:2

对于为什么会发生这种情况有什么建议吗?

为了正确解释特定于 ES 模块(importexport)的关键字,脚本应作为模块加载。和业力 doesn't do that.

即使 Karma 支持它,现实世界的应用程序依赖于只能由捆绑器正确处理的东西,例如由 CommonJS/UMD 个模块组成的 NPM 包。

目前涉及 ES 模块的测试应该在 Karma 中进行转译。