rollup-plugin-export-default

1.4.0 • Public • Published

Export all as default

This is a Rollup plugin which will export all named exports as default if no default export is specified. This makes it easy to do import pkg from 'pkg' rather than import * as pkg from 'pkg', while still allowing named imports like import { myNamedExport } from 'pkg'.

Example

Consider the following source, which provides 3 named exports:

const namedExport1 = 42;
const namedExport2 = 1.6180339887498948482;
 
export const inlineNamedExport = {
  foo: 'bar',
  fizz: 'buzz',
};
 
export {
  namedExport1,
  namedExport2,
};

Build with Rollup, and you can see that in the absence of a manually specified default export, all named exports are provided as default:

import testDefaultExport from '../build/testDefaultExport.mjs';
import {
  inlineNamedExport,
  namedExport1,
  namedExport2,
} from '../build/testDefaultExport.mjs';
 
console.log(testDefaultExport);
console.log({
  inlineNamedExport,
  namedExport1,
  namedExport2,
});

Logs to the console:

{
  inlineNamedExport: { foo: 'bar', fizz: 'buzz' },
  namedExport1: 42,
  namedExport2: 1.618033988749895
}
{
  inlineNamedExport: { foo: 'bar', fizz: 'buzz' },
  namedExport1: 42,
  namedExport2: 1.618033988749895
}

This is done by adding an export default { ... } statement following the generated export { ... } statement, i.e.:

// generated by Rollup for output.format = 'esm'
export { namedExport1, namedExport2, namedExport3 };
 
// added by this plugin:
export default { namedExport1, namedExport2, namedExport3 };

It is effectively the same as doing:

export const namedExport1 = ...;
export const namedExport2 = ...;
export const namedExport3 = ...;
 
export default {
  namedExport1,
  namedExport2,
  namedExport3
};

Readme

Keywords

none

Package Sidebar

Install

npm i rollup-plugin-export-default

Weekly Downloads

314

Version

1.4.0

License

MIT

Unpacked Size

8.35 kB

Total Files

18

Last publish

Collaborators

  • ctjlewis