Registry /
testing / karma-babel-preprocessor
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
babelPreprocessor
✓ module.exports = function(config) { config.set({ babelPreprocessor: { options: { presets: ['@babel/preset-env'] } } }); };
✗ module.exports = function(config) { config.set({ preprocessors: { '**/*.js': ['babel'] } }); };
Configuration is set via `babelPreprocessor` key in karma config. Wrong preprocessor pattern applies babel to all files including node_modules.
config.set({ preprocessors })
✓ preprocessors: { 'src/**/*.js': ['babel'] }
✗ preprocessors: { '**/*.js': ['babel'] }
Always limit preprocessor to source files only; applying to all files breaks third-party libraries.
babelPreprocessor.options
✓ babelPreprocessor: { options: { presets: ['@babel/preset-env'], sourceMap: 'inline' }, filename: function(file) { return file.originalPath; } }
✗ babelPreprocessor: { presets: ['@babel/preset-env'] }
Options must be nested inside `options` key. Directly setting presets at top level is not supported.
Installs the preprocessor and configures Karma to transpile source and test files with Babel presets.
npm install karma karma-babel-preprocessor @babel/core @babel/preset-env --save-dev
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'src/**/*.js',
'test/**/*.js'
],
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*.js': ['babel']
},
babelPreprocessor: {
options: {
presets: ['@babel/preset-env'],
sourceMap: 'inline'
}
},
browsers: ['ChromeHeadless']
});
};
Errors
Common errors & fixes
Module '@babel/core' has been externalized for browser compatibility, cannot be resolved in node_modules
Missing @babel/core dependency; or using karma-webpack with babel-loader which externalizes node_modules.
fixEnsure @babel/core is installed: npm install @babel/core --save-dev
Error: Cannot find module '@babel/core'
@babel/core not installed or not in node_modules.
fixRun: npm install @babel/core @babel/preset-env --save-dev
Babel presets must be an array of preset names
babelPreprocessor options not nested correctly; e.g., presets set at top level instead of inside options.
fixUse: babelPreprocessor: { options: { presets: ['@babel/preset-env'] } } Audit
Dependencies
@babel/corerequiredpeer dependency required for transpilation