Détail du package

@azimutlabs/rollup-config

azimutlabs6MIT1.0.1

Compose, combine, merge and create Rollup configurations

config, rollup, rollup-config, alabs

readme

🍣 azimutlabs logo /rollup-config

Compose, combine, merge and create Rollup configurations

azimutlabs/rollup repository github workflow status azimutlabs/rollup repository license @azimutlabs/rollup-config

Installation

 $ yarn add -D @azimutlabs/rollup-config

Usage

combine

Combine several configurations into a single RollupOptions object.

function combine(
  finalizers: ReadonlyArray<RollupConfig['finalize']>,
  format?: InternalModuleFormat,
  options?: RollupOptions
): RollupConfigFinalize;

Given example:

// rollup.config.js
import { combine } from '@azimutlabs/rollup-config';
import babel from '@azimutlabs/rollup-config-babel';
import typescript from '@azimutlabs/rollup-config-typescript';
// Order is important, because 'combine' will prefer to add the latest plugins in case of
// plugin merge conflicts.
export default combine([babel, typescript]);

...will result in:

// rollup.config.js
export default {
  /* ...merged RollupOptions */
  plugins: [
    // Babel from 'rollup-config-babel'.
    { name: 'babel' },
    // External and Node-Resolve here because of how 'combine' handles duplicate plugins.
    // It will prefer the latest plugins and keep them, stripping down the others.
    { name: 'external' },
    { name: 'node-resolve' },
    // TypeScript from 'rollup-config-typescript'.
    { name: 'typescript' },
  ],
}

compose

Compose multiple configurations into a singular array of RollupOptions.

function compose(...configs: ComposeFinalize[]): RollupConfigFinalize;

Just by using RollupConfigFinalize:

// rollup.config.js
import compose from '@azimutlabs/rollup-config';
import babel from '@azimutlabs/rollup-config-babel';
import typescript from '@azimutlabs/rollup-config-typescript';

export default compose(typescript('es'), babel('cjs'));

...will result in:

// lib/
//   index.d.ts - output from typescript
//   index.es.js - output from typescript
//   index.cjs.js - output from babel
export default [
  { /* typescript config */ },
  { /* babel config */ },
];

But if we use ComposeFinalizeWithEnv:

// rollup.config.js
import compose, { Envs } from '@azimutlabs/rollup-config';
import babel from '@azimutlabs/rollup-config-babel';
import typescript from '@azimutlabs/rollup-config-typescript';

export default compose(
  babel('cjs'),
  /**
   * You can even pass down multiple envs:
   * @example
   * [typescript('es'), [Envs.Test, Envs.Prod]]
   */
  [typescript('es'), Envs.Prod]
);

...final result will differ depending on NODE_ENV environment variable. By default, if no value provided, we will consider it as development:

// NODE_ENV === ''
// lib/
//   index.cjs.js - output from babel
export default [
  { /* babel config */ },
];
// NODE_ENV === 'production'
// lib/
//   index.d.ts - output from typescript
//   index.es.js - output from typescript
//   index.cjs.js - output from babel
export default [
  { /* babel config */ },
  { /* typescript config */ },
];

RollupConfig

Class used as the base of our configurations. Consider checking contributing to learn more about it.

Contributing

Any PR is welcomed by our @js-opensource team. Check out our contributing guidelines for more info.

License

azimutlabs rollup config license

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

1.0.1 (2021-06-03)

Bug Fixes

  • rollup-config: use typeof instead of instanceof to determine inject (c0061f8)

1.0.0 (2021-06-02)

Note: Version bump only for package @azimutlabs/rollup-config

1.0.0-rc.0 (2021-06-02)

Features

  • rollup-config: expose 'getRootDir' method as public static (12813a1)

0.3.0 (2021-04-06)

Features

  • rollup-config: enable sourcemap generation by default (#54) (3aa58ff)

0.2.1 (2021-03-04)

Note: Version bump only for package @azimutlabs/rollup-config

0.2.0 (2021-03-01)

Features

  • rollup-config: add optional 'sourceDir', 'outputDir' and 'env' options (#35) (f21c466)

0.1.0 (2021-02-26)

Bug Fixes

  • rollup-config: export missing types (3325506)
  • rollup-config: remove All option from current environment (3306e15)
  • rollup-config: resolve index file when found (d06bc78)
  • rollup-config: reverse array to filter plugins in combine (9442590)

0.1.0-alpha.3 (2021-02-25)

Bug Fixes

  • rollup-config: apply config if Envs.All is present (#15) (f4af647)
  • rollup-config: use nullish coalescing for getCurrentEnv (067155a)

0.1.0-alpha.2 (2021-02-24)

Features

  • rollup-config: add service combine (814d978)

0.1.0-alpha.1 (2021-02-24)

Note: Version bump only for package @azimutlabs/rollup-config

0.1.0-alpha.0 (2021-02-24)

Bug Fixes

  • rollup-config: add missing type (c7b28c1)
  • rollup-config: compile errors (d86d1ac)

Features

  • rollup-config: add finalize method and compose function (bd72a41)