@naiable/rollup-config
Version:
Use rollup like tsup, but opinionated my way.
94 lines (91 loc) • 4.37 kB
TypeScript
import { InputOption, RollupOptions, ExternalOption } from 'rollup';
import { RollupAliasOptions } from '@rollup/plugin-alias';
import { RollupCommonJSOptions } from '@rollup/plugin-commonjs';
import { RollupNodeResolveOptions } from '@rollup/plugin-node-resolve';
import swc__default from '@rollup/plugin-swc';
import { Options } from 'rollup-plugin-dts';
import { FilterPattern } from '@rollup/pluginutils';
import { RollupTypescriptOptions } from '@rollup/plugin-typescript';
import vue__default from 'unplugin-vue/rollup';
import esbuild__default from 'rollup-plugin-esbuild';
import { RollupBabelInputPluginOptions, RollupBabelOutputPluginOptions } from '@rollup/plugin-babel';
import terser from '@rollup/plugin-terser';
export { presetApp } from './preset-app.js';
export { presetLib } from './preset-lib.js';
declare function writeFile(path: string, content: string): void;
interface INaiableRollupCompileTypeScriptConfig {
/** Use `@rollup/plugin-typescript`! */
type: "@rollup/plugin-typescript";
/** TypeScript Options. */
typescript?: RollupTypescriptOptions;
}
interface INaiableRollupCompileSWCConfig {
/** Use `@rollup/plugin-swc`! */
type: "@rollup/plugin-swc";
/** SWC Options */
swc?: Parameters<typeof swc__default>[0];
/** Include and exclude files. */
include?: FilterPattern;
/** Include and exclude files. */
exclude?: FilterPattern;
}
interface INaiableRollupComplieEsbuildConfig {
/** Use `rollup-plugin-esbuild`! */
type: "rollup-plugin-esbuild";
/** Esbuild Options. */
esbuild?: Parameters<typeof esbuild__default>[0];
}
type INaiableRollupCompileConfig = INaiableRollupCompileTypeScriptConfig | INaiableRollupCompileSWCConfig | INaiableRollupComplieEsbuildConfig;
interface INaiableBabelOptions {
inputOptions?: RollupBabelInputPluginOptions | false;
outputOptions?: RollupBabelOutputPluginOptions | false;
}
interface INaiableRollupConfig {
/** The input file. @default 'src/index.ts' */
input?: InputOption;
/** The output format. @default ['cjs', 'esm'] */
output?: ("cjs" | "esm")[];
/** The output directory. @default 'dist' */
dir?: string;
/** The `@rollup/plugin-alias` options. Default alias `@` to `src`. */
alias?: RollupAliasOptions | false;
/** The `@rollup/plugin-commonjs` options. */
commonjs?: RollupCommonJSOptions | false;
/** The `@rollup/plugin-node-resolve` options. Default extensions include `.ts`, `.tsx`, `.cjs`, `.jsx`, `.mts`, `.cts`. */
resolve?: RollupNodeResolveOptions | false;
/** Use `@rollup/plugin-typescript` or `@rollup/plugin-swc` or `rollup-plugin-esbuild` ? */
compile?: INaiableRollupCompileConfig | false;
/** The `d.ts` build options. */
dts?: Options | false;
/** The `unplugin-vue` options. */
vue?: Parameters<typeof vue__default>[0] | false;
/** The `@rollup/plugin-babel` options. */
babel?: INaiableBabelOptions | false;
/** The `@rollup/plugin-terser` options. */
terser?: Parameters<typeof terser>[0] | false;
/** Use strict. @default true */
strict?: boolean;
/** Source map. @default inline */
sourcemap?: boolean | "inline" | "hidden";
/** Free override rollup config */
overrides?: {
/** The `Build` options. */
buildOptions?: RollupOptions;
/** The `d.ts` build options. */
dtsOptions?: RollupOptions;
};
/** Generate a snapshot json file when builded. */
snapshot?: {
/** Enable snapshot. @default false */
enable: boolean;
/** The snapshot file path. @default `rollup.config.snapshot-${new Date().toISOString()}.json` */
path?: string;
};
/** Preserve modules. @default true */
preserveModules?: boolean;
/** External dependencies. @default [/node_modules/] */
external?: ExternalOption;
}
declare function naiup(config?: INaiableRollupConfig): RollupOptions[];
export { type INaiableBabelOptions, type INaiableRollupCompileConfig, type INaiableRollupCompileSWCConfig, type INaiableRollupCompileTypeScriptConfig, type INaiableRollupComplieEsbuildConfig, type INaiableRollupConfig, naiup as default, writeFile };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==