npm

Need private packages and team management tools?Check out npm Orgs. »

karma-rollup-preprocessor

7.0.2 • Public • Published


Karma + Rollup

Karma preprocessor to bundle ES2015 modules using Rollup.

Build Status Dependency Status Downloads Version MIT License


Features

  • Rebundles your files when watched dependencies change
  • Caches bundle output for improved performance
  • Maintained with heart by @jlmakes

Installation

npm install karma-rollup-preprocessor

Configuration

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')()],
                },
            },
        },
    })
}

Support

Supports all Rollup plug-ins, and works on Node 8 and up. Happy bundling!

install

npm i karma-rollup-preprocessor

Downloadsweekly downloads

14,538

version

7.0.2

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability