Files
lucide/packages/icons/rollup.config.mjs
KarsaandEric Fennis 8fe835c105 feat(packages): added new @lucide/icons package (#3881)
* feat(packages): added lucide icons package skeleton

* feat(packages): added initial commit of @lucide/icons

* fix: fixed linting issues introduced in c4e5730bc4 (#3858)

* fix(packages/icons): update package, remove UMD export

* fix(packages/icons): update github actions

* docs(packages/icons): add documentation for various helpers and types

* fix(.github/ISSUE_TEMPLATE): fix linting issue (@ is a reserved character)

* fix(packages/icons): fix linting issues in configs

* feat(packages/icons): rename from packages/lucide-icons => packages/icons

* fix(pnpm): update lockfile

* fix(packages/icons): update readme and documentation

* fix(packages/icons): update absoluteStrokeWidth implementation

* test(packages/icons): update absoluteStrokeWidth unit test

* feat(packages/icons): add backwards compatible alias support in buildLucideIconNode

* feat(packages/icons): fix linting issues in build tools

* fix(packages/icons): rename LucideIcon => LucideIconData

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-03-13 10:18:53 +01:00

88 lines
1.9 KiB
JavaScript

import plugins from '@lucide/rollup-plugins';
import pkg from './package.json' with { type: 'json' };
import dts from 'rollup-plugin-dts';
const packageName = '@lucide/icons';
const outputFileName = 'lucide-icons';
const inputs = [`src/lucide-icons.ts`];
const bundles = [
{
format: 'cjs',
inputs,
extension: 'cjs',
},
{
format: 'esm',
inputs: [...inputs, './src/dynamic.ts', './src/build.ts'],
preserveModules: true,
extension: 'mjs',
},
];
const configs = bundles
.map(
({
inputs,
outputDir = 'dist',
outputFile,
format,
minify,
preserveModules,
entryFileNames,
external = [],
paths,
extension = 'js',
}) =>
inputs.map((input) => ({
input,
plugins: [...plugins({ pkg, minify })],
external,
output: {
name: packageName,
entryFileNames,
...(preserveModules
? {
dir: `${outputDir}/${format}`,
entryFileNames: `[name].${extension}`,
}
: {
file:
outputFile ??
`${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.${extension}`,
}),
paths,
format,
sourcemap: true,
preserveModules,
exports: 'named',
globals: {},
preserveModulesRoot: 'src',
},
})),
)
.flat();
export default [
...[
outputFileName,
`${outputFileName}.prefixed`,
`${outputFileName}.suffixed`,
'dynamic',
'build',
].map((filename) => ({
input: `./src/${filename}.ts`,
output: [
{
file: `dist/esm/${filename}.d.ts`,
format: 'esm',
},
{
file: `dist/cjs/${filename}.d.cts`,
format: 'cjs',
},
],
plugins: [dts()],
})),
...configs,
];