# `karma-rollup-preprocessor` Karma preprocessor to bundle ES modules using Rollup.

Build Status Downloads Version MIT License


## Installation ```bash npm install karma-rollup-preprocessor ```
## Configuration All the options detailed in the [Rollup Documentation](https://github.com/rollup/rollup/wiki/JavaScript-API) can be passed to `rollupPreprocessor`. ### Standard Below is a well-founded recommendation using the [Bublé](https://buble.surge.sh) 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: '', // Required for 'iife' format. sourcemap: 'inline', // Sensible for testing. }, }, }) } ```
### Configured Preprocessors Below shows an example where [configured preprocessors](http://karma-runner.github.io/1.0/config/preprocessors.html) 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](http://i.imgur.com/oXJmdtz.gif)