我正在尝试在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
为什么会发生这种情况的任何建议?
答案 0 :(得分:3)
为了正确解释特定于ES模块(import
和export
)的关键字,应将脚本作为模块加载。和Karma doesn't do that。
即使Karma支持它,现实世界的应用程序依赖于只能由捆绑器正确处理的东西,例如由CommonJS / UMD模块组成的NPM包。
目前涉及ES模块的测试应该在Karma中进行描述。