#3744·lucide

lucide-react-native adding ~13k lines of repeated license text to production output bundle expo-router/web

Author: gorbyparkCreated Oct 30, 2025Updated Sep 16, 2026
Labels🐛 bug

Package

  • lucide
  • lucide-angular
  • lucide-flutter
  • lucide-preact
  • lucide-react
  • lucide-react-native
  • lucide-solid
  • lucide-svelte
  • lucide-vue
  • lucide-vue-next
  • lucide-astro
  • Figma plugin
  • source/main
  • other/not relevant

Version

0.548.0

Can you reproduce this in the latest version?

  • Yes
  • No

Browser

  • Chrome/Chromium
  • Firefox
  • Safari
  • Edge
  • iOS Safari
  • Opera
  • Other/not relevant

Operating system

  • Windows
  • Linux
  • macOS
  • ChromeOS
  • iOS
  • Android
  • Other/not relevant

Description

When using lucide-react-native in an expo-router based expo project on the web (metro bundling for web), if you do npx expo export --platform web and then inspect the entry_xxxx.js bundle, there is about 13,000 lines of text that is just the repeated lucide license text. I haven't counted it up, but I'm assuming it's one license per lucide icon?

I'm guessing when serving the bundle the servers compression will take care of mostly compressing it away, but it does seem a bit excessive!

const u=(0,((e=t)&&e.__esModule?e:{default:e}).default)("ZoomIn",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]])},5122,[3462]);
__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]);
/**
   * @license lucide-react-native v0.548.0 - ISC
   *
   * This source code is licensed under the ISC license.
   * See the LICENSE file in the root directory of this source tree.
   */

this is just repeated over and over after each icon. Probably another issue, but this makes me think that "tree shaking" is not working, because every single icon is being included in the bundle, whether used or not.

Steps to reproduce

  1. add react native lucide to project
  2. use a single icon
  3. run npx expo expo -p web
  4. inspect entry_xxx.js create from step 3

Checklist

  • I have searched if someone has submitted a similar issue before and there weren't any. (Please make sure to also search closed issues, as this issue might already have been resolved.)