@foxkit/rollup-config
v1.1.1
Published
Rollup config generating tools
Downloads
2
Readme
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;