我正在使用 webpack 为将托管一些反应组件的 npm 包生成适当的文件。他们附加了一些 CSS,其中引用了一些字体和图标。
使用加载器时,这些资产在主应用程序中file
使用它们的绝对路径(即 )被错误引用,而这些路径是缺失的。fonts/my-font.woff
有没有办法解决这个问题并让我的主应用程序查找正确的文件?我宁愿修复包本身,也不愿像有人提到的那样复制资产,因为我可能无法完全控制主应用程序。
好吧,我首先要说在组件中包含字体通常是一个坏主意,因为主应用程序可能有自己的风格/品牌/等,你会与之抗争。
也就是说,如果字体类似于图标,您可以对它们进行 base64 编码并将其内联到 CSS 中。有几个 Webpack 编码器插件可以做到这一点。
您还提到了图标,我会尝试将它们转换为 SVG 并在代码中提供它们。您还可以将 PNG 进行 base64 编码到您的 CSS 作为后备。
这种方法的好处:
我能想到的缺点: