Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

rollup-plugin-condition-exports

JiangWeixian53MIT1.4.1TypeScript support: included

auto setup main/module/typings/exports/typesVersions

readme

rollup-plugin-condition-exports

auto setup main/module/typings/exports/typesVersions

npm GitHub stackblitz

Edit on StackBlitz ⚡️

install

pnpm i rollup-plugin-condition-exports

usage

import commonjs from '@rollup/plugin-commonjs'
import typescript from 'rollup-plugin-typescript2'
+import ce from 'rollup-plugin-condition-exports'
import { defineConfig } from 'rollup'

export default defineConfig([
  {
    input: ['src/index.ts', 'src/do-something'],
    plugins: [
      typescript(), // so Rollup can convert TypeScript to JavaScript
      commonjs(),
+     ce(),
    ],
    output: [
      { dir: 'cjs', format: 'cjs' },
      { dir: 'es', entryFileNames: '[name].mjs', format: 'es' },
    ],
  },
])

👇 will setup fields in package

{
  "exports": {
    ".": {
      "import": "./dist/index.mjs",
      "require": "./dist/index.cjs",
      "types": "./dist/index.d.ts",
    },
    "./do-something": {
      "import": "./dist/do-something/index.mjs",
      "require": "./dist/do-something/index.cjs",
      "types": "./dist/do-something/index.d.ts",
    },
    "./package.json": "./package.json",
  },
  "main": "dist/index.cjs",
  "module": "dist/index.mjs",
  "types": "dist/index.d.ts",
  "typesVersions": {
    "*": {
      "do-something": [
        "dist/do-something/index.d.ts",
      ],
    },
  },
}

see examples from more details

options

package.json main/module/typings/exports/typesVersions fields controlled by follows options.

  • exports formation will be [dir]/[name].[ext]
  • typesVersions formation will be [dir|types.dir]/[name].d.ts
  • main/module/types formation will be [dir]/index.[ext], only working if index name exit

types: boolean | { dirs: string }

enable setup typesVersions field.

names: string[]

default infer from rollup bundle info

formats: ['cjs', 'es']

default infer from rollup options, enable/disable exports.require or exports.import

dirs: string | { cjs: string, es: string }

default infer from rollup bundle info

exts: string | { cjs: string, es: string }

bundle file extname

glob: string[]

useful for like react-components project, get all exports module name by fast-glob's patterns

base: string

replace prefix string of glob result.

disabledFields: string[]

force disable some fields, regardless of other settings

development

  • Setup - pnpm i
  • Build - pnpm build

built with ❤️ by 😼

changelog

rollup-plugin-condition-exports

1.4.1

Patch Changes

  • 62d3d33: upgrade @lotips/core to fix types config not working

1.4.0

Minor Changes

  • 339da84: support disable setup some filelds via disabledFields

1.3.1

Patch Changes

  • 5bf03f7: fix names not working

1.3.0

Minor Changes

  • 21c7c33: support components project with glob options

1.2.0

Minor Changes

  • 56131b9: setup typesversions

1.1.0

Minor Changes

  • ad834df: export single plugin

1.0.1

Patch Changes

  • 77581e9: fix build before publish

1.0.0

Major Changes

  • 403f642: mvp version