1.1.1 • Published 2 years ago

@foxkit/rollup-config v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Foxkit Rollup Config

This package contains utility functions to generate simple Rollup configs

Installation

yarn add -D @foxkit/rollup-config rollup

Usage

In your rollup.config.mjs file import initConfig from the package to create makeConfig, then pass it an input path and import key according to your directory structure and exports field:

import initConfig from "@foxkit/rollup-config";
const makeConfig = initConfig();

const config = [
  makeConfig({ input: "src/index.js", key: "." }),
  makeConfig({ input: "src/foo.js", key: "./foo" })
];

export default config;

The output paths and dependencies (external field in config) will be read from the package.json found in the current working directory. Note that each value of exports is expected to be an object!

"exports": {
  ".": {
    "import": "./dist/index.js",
    "require": "./dist/index.cjs"
  },
  "./foo": {
    "import": "./dist/foo.js"
  }
}

Skip Autoclean

All configs delete the dist directory when initialized. To prevent this behaviour set the environment variable ROLLUP_SKIP_CLEAN to "true" before initializing a config:

process.env.ROLLUP_SKIP_CLEAN = "true";
const makeConfig = initConfig();
ROLLUP_SKIP_CLEAN="true" yarn build

With TypeScript

Two options exist to use TypeScript:

With Type Declarations

  • Install typescript rollup-plugin-typeScript2 as well:
yarn add -D typescript rollup-plugin-typescript2
  • Then import "@foxkit/rollup-config/ts" instead.
import initConfig from "@foxkit/rollup-config/ts.js";
const makeConfig = initConfig();

const config = [
  makeConfig({ input: "src/index.ts", key: "." }),
  makeConfig({ input: "src/foo.js", key: "./foo", ts: false }) // disable ts for specific export
];

export default config;

This will make sure types are checked and build time. Type declaration files will be included alongside the generated files.

Transpiled (Babel)

  • Install TypeScript, Babel, @rollup/plugin-node-resolve and @rollup/plugin-babel as well:
yarn add -D typescript @rollup/plugin-node-resolve @rollup/plugin-babel @babel/core @babel/preset-typescript
  • Add the following babel.config.json config to your project:
{
  "presets": ["@babel/preset-typescript"]
}
  • Then import "@foxkit/rollup-config/ts-babel" instead.
import initConfig from "@foxkit/rollup-config/ts-babel.js";
const makeConfig = initConfig();

const config = [
  makeConfig({ input: "src/index.ts", key: "." }),
  makeConfig({ input: "src/foo.js", key: "./foo" })
];

export default config;