Skip to content
Add both ES6 and ES5 support to Karma
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


npm version Dependency Status

Karma wrapper that makes sure the ES6 and ES5 shims are BOTH available. See also the example usage project.

Modified from

es6-shim for karma including es5-shim.


Most versions of PhantomJS do not support ES5, let alone ES6. This meant that you got all sorts of errors when you tried to test ES6 features, even if you had used the Babel/6to5 transpiler.

Therefore, we have modified pokehanai/karma-es5-shim in the following ways:

  • Use peerDependencies rather than submodules
  • Include both ES5 and ES6 so that PhantomJS can run tests



Install the module from npm:

npm install karma-es6-shim --save

Add es6-shim to the frameworks key after requirejs in your Karma configuration:

module.exports = function(karma) {
    // frameworks to use
    frameworks: ['requirejs', 'es6-shim']
    // ...

Example usage

You will almost certainly need some kind of transpiler such as Babel or 6to5.

We have supplied an example repository at

When to use this and when not to

Use it if you meet all the following criteria:

  • You are using PhantomJS in Karma to test ES6
  • You use the es6-shim polyfill in your HTML
  • You need to use AMD-based module loading, e.g. RequireJS (see Babel's docs for more information)

Do not use it if:

You can’t perform that action at this time.