Builds a babel configuration for rollup-plugin-babel by reading .babelrc.
JavaScript Shell
Clone or download
eventualbuddha feat: update to work with babel v6.13.x by passing options (#4)
BREAKING CHANGE: we no longer look for `-rollup` suffixed presets unless you specifically ask to. You can restore the old behavior as described in the README.

Works around rollup/babel-preset-es2015-rollup#7.
Latest commit 5cfa3be Aug 9, 2016

README.md

babelrc-rollup

Builds a babel configuration for rollup-plugin-babel by reading .babelrc.

Install

$ npm install --save-dev babelrc-rollup

Usage

Create a .babelrc file at the root of your project as normal:

{
  "presets": ["es2015"]
}

Inside your rollup.config.js, do this:

import babelrc from 'babelrc-rollup';
import babel from 'rollup-plugin-babel';

export default {
  …
  plugins: [
    babel(babelrc())
  ]
  …
};

Options

path (default: '.babelrc')

If you'd like to customize the path of your babelrc file, pass this option with a string path that can be read using fs.readFile.

config

Use this to avoid reading a babelrc file at all. You could use this to pull the config from package.json instead, for example.

addModuleOptions (default: true)

Disable this option if you do not want the modules: false option to be given to presets in your babel config. You probably don't want to change this unless you're using findRollupPresets.

findRollupPresets (default: false)

Enable this to replace presets with the equivalent rollup-compatible preset, if available. When this option is enabled, babelrc-rollup will try to resolve e.g. es2015-rollup instead of es2015. If no such preset can be found the original will be used.

addExternalHelpersPlugin (default: true)

By default, babelrc-rollup adds the external-helpers plugin, which ensures that only one copy of each helper ends up in your bundle. Disable this option to prevent adding this plugin.

A note on babel versions

Since babel v6.13.0, presets may be given options by using a tuple of [name, opts]. For example, instead of

{
  "presets": ["es2015"]
}

You can do this:

{
  "presets": [
    ["es2015", { "modules": false }]
  ]
}

babelrc-rollup is meant to work with this version of babel or later, but earlier versions are supported by using the right options. The old way to configure the es2015 preset for use with rollup was to use the es2015-rollup preset instead. To continue doing that, call babelrc like so:

babelrc({
  addModuleOptions: false,
  findRollupPresets: true,
  addExternalHelpersPlugin: false
})

If you use the es2015 preset, make sure you install es2015-rollup too. If you can use babel v6.13.0 or later, you should do so.