
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@joeyparrish/karma-babel-preprocessor
Advanced tools
Preprocessor to compile ES6 on the fly with babel.
Preprocessor to compile ES6 on the fly with babel.
This fork of the original adds caching. See cachePath below.
babel and karma-babel-preprocessor only convert ES6 modules to CommonJS/AMD/SystemJS/UMD. If you choose CommonJS, you still need to resolve and concatenate CommonJS modules on your own. We recommend karma-browserify + babelify or webpack + babel-loader in such cases.
With babel 7.x:
npm install karma-babel-preprocessor @babel/core @babel/preset-env --save-dev
With babel 6.x:
npm install karma-babel-preprocessor@7 babel-core babel-preset-env --save-dev
As of Babel 6.0, you need to tell Babel which features to use. @babel/preset-env would be the most common one.
See babel options for more details.
Given options properties are passed to babel.
In addition to the options property, you can configure any babel options with function properties. This is useful when you want to give different babel options from file to file.
For example, inline sourcemap configuration would look like the following.
module.exports = function (config) {
config.set({
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*.js': ['babel']
},
babelPreprocessor: {
options: {
presets: ['@babel/preset-env'],
sourceMap: 'inline'
},
filename: function (file) {
return file.originalPath.replace(/\.js$/, '.es5.js');
},
sourceFileName: function (file) {
return file.originalPath;
}
}
});
};
Adding the field cachePath will enable caching. Cached output from babel
will be stored into that file, along with md5 hashes of the original contents
of each file. If an original file hasn't changed, the cached babel-processed
results will be reused.
module.exports = function (config) {
config.set({
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*.js': ['babel']
},
babelPreprocessor: {
cachePath: '.babel-cache',
options: {
presets: ['@babel/preset-env'],
sourceMap: 'inline'
},
}
});
};
Third-party libraries may not work properly if you apply karma-babel-preprocessor to them. It also introduces unnecessary overhead. Make sure to explicitly specify files that you want to preprocess.
OK:
module.exports = function (config) {
config.set({
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*.js': ['babel']
},
// ...
});
};
NG:
module.exports = function (config) {
config.set({
preprocessors: {
'./**/*.js': ['babel']
},
// ...
});
};
Because it preprocesses files in node_modules and may break third-party libraries like jasmine #18.
If you need polyfill, make sure to include it in files.
npm install @babel/polyfill --save-dev
module.exports = function (config) {
config.set({
files: [
'node_modules/@babel/polyfill/dist/polyfill.js',
// ...
],
// ...
});
});
In most cases, you don't need to explicitly specify plugins option. By default, Karma loads all sibling NPM modules which have a name starting with karma-*. If need to do so for some reason, make sure to include 'karma-babel-preprocessor' in it.
module.exports = function (config) {
config.set({
plugins: [
'karma-jasmine',
'karma-chrome-launcher',
'karma-babel-preprocessor'
],
// ...
});
};
karma-babel-preprocessor supports custom preprocessor. Set base: 'babel' in addition to normal preprocessor config.
module.exports = function (config) {
config.set({
preprocessors: {
'src/**/*.js': ['babelSourceMap'],
'test/**/*.js': ['babelSourceMap']
},
customPreprocessors: {
babelSourceMap: {
base: 'babel',
options: {
presets: ['@babel/preset-env'],
sourceMap: 'inline'
},
filename: function (file) {
return file.originalPath.replace(/\.js$/, '.es5.js');
},
sourceFileName: function (file) {
return file.originalPath;
}
},
// Other custom preprocessors...
}
});
};
FAQs
Preprocessor to compile ES6 on the fly with babel.
We found that @joeyparrish/karma-babel-preprocessor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.