Skip to content

可选依赖

ExUI 将体积较大的第三方库声明为可选 peer 依赖peerDependenciesMeta.optional)。 安装 vue-ex-ui 时不会自动安装它们,只有在使用对应组件时才需要手动安装。

依赖一览

依赖使用它的组件安装命令
echartsExChartnpm i echarts
qrcodeExQRCodenpm i qrcode
jsbarcodeExBarcodenpm i jsbarcode
lunar-javascriptExCalendar(农历显示)npm i lunar-javascript
vue-i18n国际化(可选)npm i vue-i18n

工作原理

  • 这些依赖在构建时被标记为 external,不会被打包进 vue-ex-ui 的产物。
  • 它们在源码中均通过运行时动态 import() 按需加载(echartsqrcodejsbarcodelunar-javascriptvue-i18n 皆是如此),不存在顶层静态 import ... from '...'。这一点很关键:顶层静态导入会被 Vite 的依赖预扫描 在 dev 阶段直接解析,未安装就报错;而动态 import() 只在真正用到对应 组件、代码执行到那一行时才去解析。
  • 因此,如果你的应用没有使用对应组件,Tree Shaking 会把该组件连同它的 动态 import() 一起裁掉,不安装这些依赖也不会导致构建或开发服务器失败
  • 一旦你实际使用了对应组件(如挂载 ExChart),运行/构建时才会去解析 echarts,此时若未安装会得到清晰的"模块未找到"报错——按上表安装即可。

关于 vue-i18n

vue-i18n 同样是可选的,且默认根本不会被导入

  • 未安装 / 未启用时,组件库使用内置的轻量翻译实现(支持 setLocale 切换 中英文、{param} 插值)。此时代码中不存在对 vue-i18n 的任何运行时引用。
  • 已安装并通过 createLocaleProvider() 初始化后,该函数会动态加载 vue-i18n, 组件库内部的翻译随即自动代理到 vue-i18n,与你应用的其余文案统一管理。
  • 也就是说:只有「主动调用 createLocaleProvider()」这一条路径会触碰 vue-i18n, 其余所有用法都走内置实现。

图标说明

ExUI 的所有图标均为内置 SVG(见 ExIconicon 属性), 不依赖任何图标库或网络请求,无需额外安装。