mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-23 05:39:23 +01:00
feat(lucide-react): Add DynamicIcon component (#2686)
* Adding the DynamicIcon component * Fix imports * Add docs * Formatting * Fix use client in output rollup * revert changes * Fix formatting * Revert changes in icons directory * Revert time command * update exports
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import plugins from '@lucide/rollup-plugins';
|
||||
import preserveDirectives from 'rollup-plugin-preserve-directives';
|
||||
import pkg from './package.json' assert { type: 'json' };
|
||||
import dts from 'rollup-plugin-dts';
|
||||
import getAliasesEntryNames from './scripts/getAliasesEntryNames.mjs';
|
||||
@@ -34,14 +35,15 @@ const bundles = [
|
||||
},
|
||||
{
|
||||
format: 'esm',
|
||||
inputs: ['src/dynamicIconImports.ts'],
|
||||
outputFile: 'dynamicIconImports.js',
|
||||
inputs: ['src/dynamic.ts', 'src/dynamicIconImports.ts', 'src/DynamicIcon.ts'],
|
||||
outputDir,
|
||||
preserveModules: true,
|
||||
external: [/src/],
|
||||
paths: (id) => {
|
||||
if (id.match(/src/)) {
|
||||
const [, modulePath] = id.match(/src\/(.*)\.ts/);
|
||||
|
||||
return `dist/esm/${modulePath}.js`;
|
||||
return `${modulePath}.js`;
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -62,7 +64,14 @@ const configs = bundles
|
||||
}) =>
|
||||
inputs.map((input) => ({
|
||||
input,
|
||||
plugins: plugins({ pkg, minify }),
|
||||
plugins: [
|
||||
...plugins({ pkg, minify }),
|
||||
// Make sure we emit "use client" directive to make it compatible with Next.js
|
||||
preserveDirectives({
|
||||
include: 'src/DynamicIcon.ts',
|
||||
suppressPreserveModulesWarning: true,
|
||||
}),
|
||||
],
|
||||
external: ['react', 'prop-types', ...external],
|
||||
output: {
|
||||
name: packageName,
|
||||
@@ -95,7 +104,31 @@ export default [
|
||||
input: 'src/dynamicIconImports.ts',
|
||||
output: [
|
||||
{
|
||||
file: `dynamicIconImports.d.ts`,
|
||||
file: `dist/dynamicIconImports.d.ts`,
|
||||
format: 'es',
|
||||
},
|
||||
],
|
||||
plugins: [
|
||||
dts({
|
||||
exclude: ['./src/icons'],
|
||||
}),
|
||||
],
|
||||
},
|
||||
{
|
||||
input: 'src/dynamic.ts',
|
||||
output: [
|
||||
{
|
||||
file: `dist/dynamic.d.ts`,
|
||||
format: 'es',
|
||||
},
|
||||
],
|
||||
plugins: [dts()],
|
||||
},
|
||||
{
|
||||
input: 'src/DynamicIcon.ts',
|
||||
output: [
|
||||
{
|
||||
file: `dist/DynamicIcon.d.ts`,
|
||||
format: 'es',
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user