Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 786
pertrai1 Avatar asked Mar 22 '16 19:03

pertrai1


2 Answers

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',
  ...
]
like image 124
drixsonic Avatar answered Nov 20 '22 04:11

drixsonic


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 e.g.: 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.

like image 1
crackmigg Avatar answered Nov 20 '22 05:11

crackmigg