一、问题
目前我们有个需求,基于vue,需要将业务组件单独提取出来,打包成一个npm包给其他项目使用,业务组件里有图片等静态资源,我应该如何打包才能让第三方使用者使用时我们的图片正确显示呢?
二、遇到的问题:
我们将组件打包后,图片的src路径都是正确的,在第三方项目使用时,这个路径在css中是可以正确显示图片的,但在图片img的src使用时就找不到了。
具体的问题如下图:
目前我们有个需求,基于vue,需要将业务组件单独提取出来,打包成一个npm包给其他项目使用,业务组件里有图片等静态资源,我应该如何打包才能让第三方使用者使用时我们的图片正确显示呢?
我们将组件打包后,图片的src路径都是正确的,在第三方项目使用时,这个路径在css中是可以正确显示图片的,但在图片img的src使用时就找不到了。
具体的问题如下图:
自己封装的组件库中使用img,相对路径:(注意不要使用绝对路径,webpack对于绝对路径的静态资源不会打包编译)
在项目中使用此组件,显示时,图片不正常显示
/img/hua.d5cf4e8a.png会在当前根目录下(线上环境为dist包/img;本地开发环境为运行时的dist包/img)
解决方案:
在业务项目的main.js里引入此图片即可
方案二:
额外需要注意:组件库与项目中对于url-loader的limit应一致,不然会导致一方使用base64加载,一方使用src url方式加载
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
两种思路:1.使用网络图片或者转base64;
2.使用lerna或者使用vue-cli的库输出模式将你的组件组织成一个完善的库。