webpack如何打包带有图片的npm组件库?

一、问题

目前我们有个需求,基于vue,需要将业务组件单独提取出来,打包成一个npm包给其他项目使用,业务组件里有图片等静态资源,我应该如何打包才能让第三方使用者使用时我们的图片正确显示呢?

二、遇到的问题:

我们将组件打包后,图片的src路径都是正确的,在第三方项目使用时,这个路径在css中是可以正确显示图片的,但在图片img的src使用时就找不到了。
具体的问题如下图:
11111.png

三、打包后的代码如下图:

22222.png

四、请问打包这种业务组件的话,图片资源应该如何处理呢

阅读 8.9k
4 个回答

自己封装的组件库中使用img,相对路径:(注意不要使用绝对路径,webpack对于绝对路径的静态资源不会打包编译)
image.png
在项目中使用此组件,显示时,图片不正常显示
image.png
/img/hua.d5cf4e8a.png会在当前根目录下(线上环境为dist包/img;本地开发环境为运行时的dist包/img)
解决方案:
在业务项目的main.js里引入此图片即可
image.png
方案二:
image.png
额外需要注意:组件库与项目中对于url-loader的limit应一致,不然会导致一方使用base64加载,一方使用src url方式加载

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题