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

时间:2017-10-01 16:39:40

标签: javascript ecmascript-6 karma-runner es6-modules google-chrome-headless

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

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

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

$ 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

为什么会发生这种情况的任何建议?

1 个答案:

答案 0 :(得分:3)

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

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

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