1.4.1 ā€¢ Published 4 months ago

rollup-plugin-condition-exports v1.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

rollup-plugin-condition-exports

npm GitHub stackblitz

Edit on StackBlitz āš”ļø

File system based api exports convention, like nextjs. files under src/exports will setup main/module/typings/exports/typesVersions in package.json

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([
  {
    plugins: [
      typescript(), // so Rollup can convert TypeScript to JavaScript
      commonjs(),
+     ce(),
    ],
    output: [
      { dir: 'cjs', format: 'cjs' },
      { dir: 'es', entryFileNames: '[name].mjs', format: 'es' },
    ],
  },
])

files under src/exports will setup main/module/typings/exports/typesVersions in package.json

src
  exports
    feature
      node
      browser
    index.ts

šŸ‘‡ will setup fields in package

{
  "exports": {
    "./package.json": "./package.json",
    ".": {
      "require": "./dist/index.cjs",
      "import": "./dist/index.mjs",
      "types": "./dist/index.d.ts"
    },
    "./feature": {
      "browser": {
        "require": "./dist/feature/browser.cjs",
        "import": "./dist/feature/browser.mjs",
        "types": "./dist/feature/browser.d.ts"
      },
      "node": {
        "require": "./dist/feature/node.cjs",
        "import": "./dist/feature/node.mjs",
        "types": "./dist/feature/node.d.ts"
      }
    }
  },
  "main": "dist/index.cjs",
  "module": "dist/index.mjs",
  "types": "dist/index.d.ts",
  "typesVersions": {
    "*": {
      "feature": [
        "dist/feature/node.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.

dirs

  • types: string | (string | PageOptions)[]
  • default: src/exports

Path to exports api directory

exclude

  • types: string[]

An array of glob patterns to exclude matches.

cjsExtension

  • types: string
  • default: cjs

mjsExtension

  • types: string
  • default: mjs

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

outDir

  • types: string
  • default: dist

Outdir of bundled files

declarationDir

  • types: string
  • default: dist

Outdir of declaration files

conditions

  • types: string[]
  • default: ['node', 'browser', 'deno']

Condition exports name. checkout nodejs#condition-exports for documentation about condition export names.

development

  • Setup - pnpm i
  • Build - pnpm build

credits

built with ā¤ļø by šŸ˜¼

2.0.0-next.4

4 months ago

2.0.0-next.2

1 year ago

2.0.0-next.3

1 year ago

2.0.0-next.0

1 year ago

2.0.0-next.1

1 year ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago