简体   繁体   中英

PhantomJS Karma SyntaxError for export

I am having an issue when running Karma and PhantomJS. When I try to run I get this in the console:

22 03 2016 14:58:47.865:WARN [karma]: No captured browser, 
open http://localhost:9876/
22 03 2016 14:58:47.875:INFO [karma]: Karma v0.13.22 server 
started at http://localhost:9876/
22 03 2016 14:58:47.879:INFO [launcher]: Starting browser PhantomJS
22 03 2016 14:58:48.336:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]:
Connected on socket /#lBe2M4kLKnN8N5x0AAAA with id 55603904
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
SyntaxError: Use of reserved word 'export'

I have updated all of my npm modules for karma, webpack, karma-phantomjs, etc., but still don't understand why this is happening. An example of a file that it is not liking:

export default function () {
    // code here
}

Has anyone else run into this trouble and found out how to solve it?

You should use Webpack as preprocessor: https://github.com/webpack/karma-webpack

I personally use this one, because it's faster: https://github.com/aaronjensen/karma-webpack

And you might need to add some polyfills to your karma configuration:

files: [
  './node_modules/babel-polyfill/dist/polyfill.js',
  './node_modules/phantomjs-polyfill/bind-polyfill.js',
  ...
]

You are trying to run ES6 code with PhantomJS but PhantomJS does not seem to support them yet: https://kangax.github.io/compat-table/es6/#phantom

There are some workarounds mentioned eg: How to use ES6 with PhantomJS

You should also have a look at https://www.npmjs.com/package/karma-es6-shim and try that with your code.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM