UNPKG

@naiable/rollup-config

Version:

Use rollup like tsup, but opinionated my way.

94 lines (91 loc) 4.37 kB
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.cjs'; export { presetLib } from './preset-lib.cjs'; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=