Karma preprocessor to bundle ES modules using Rollup
npm install karma-rollup-preprocessorkarma-rollup-preprocessorKarma preprocessor to bundle ES modules using Rollup.
``bash`
npm install karma-rollup-preprocessor
All the options detailed in the Rollup Documentation can be passed to rollupPreprocessor.
Below is a well-founded recommendation using the Bublé ES2015 transpiler:
`js
// karma.conf.js
module.exports = function (config) {
config.set({
files: [
/**
* Make sure to disable Karma’s file watcher
* because the preprocessor will use its own.
*/
{ pattern: 'test/*/.spec.js', watched: false },
],
preprocessors: {
'test/*/.spec.js': ['rollup'],
},
rollupPreprocessor: {
/**
* This is just a normal Rollup config object,
* except that input is handled for you.`
*/
plugins: [require('rollup-plugin-buble')()],
output: {
format: 'iife', // Helps prevent naming collisions.
name: '
sourcemap: 'inline', // Sensible for testing.
},
},
})
}
Below shows an example where configured preprocessors can be very helpful:
`js
// karma.conf.js
module.exports = function (config) {
config.set({
files: [{ pattern: 'test/*/.spec.js', watched: false }],
preprocessors: {
'test/buble/*/.spec.js': ['rollup'],
'test/babel/*/.spec.js': ['rollupBabel'],
},
rollupPreprocessor: {
plugins: [require('rollup-plugin-buble')()],
output: {
format: 'iife',
name: '
sourcemap: 'inline',
},
},
customPreprocessors: {
/**
* Clones the base preprocessor, but overwrites
* its options with those defined below...
*/
rollupBabel: {
base: 'rollup',
options: {
// In this case, to use a different transpiler:
plugins: [require('rollup-plugin-babel')()],
},
},
},
})
}
``
Happy bundling! !heart