Package Exports
- karma-rollup-preprocessor
- karma-rollup-preprocessor/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (karma-rollup-preprocessor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
karma-rollup-preprocessor
Karma preprocessor to bundle ES modules using Rollup.
Installation
npm install karma-rollup-preprocessorConfiguration
All the options detailed in the Rollup Documentation can be passed to rollupPreprocessor.
Standard
Below is a well-founded recommendation using the Bublé ES2015 transpiler:
// 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: '<your_project>', // Required for 'iife' format.
sourcemap: 'inline', // Sensible for testing.
},
},
})
}Configured Preprocessors
Below shows an example where configured preprocessors can be very helpful:
// 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: '<your_project>',
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! 