关于以@vue/composition-api为基础开发组件,多组件之间的@vue/composition-api非单例问题

如果各位大神有更好的解决方案,或者有什么不足的地方,还请不吝赐教。

一、问题描述

多个以@vue/composition-api为基础开发的组件,在应用环境中打包时,出现非单例的情况。

二、基础环境

1. 组件环境

组件中不打包vue和@vue/composition-api

  • webpack(打包为umd)
  • vue2
  • @vue/composition-api
  • typescript

2. 应用环境

  • vuecli 5.0
  • vue2
  • @vue/composition-api

三、调查结果

查看应用环境打包结果发现,包中同时引入了@vue/composition-api的module包和commonjs包,才出现了非单例的情况。

四、临时解决方案

因为使用了webpack,调查了半天,没找到如何打包mjs,又没时间改rollup打包,就临时强制按需引用打包了一个使用@vue/composition-api的module的module的包。

五、教训

打包环境选择时,要尽量考虑到应用环境中可能使用的引用方式,尽量多打几个版本的包,以满足更多的环境,减少这种引用导致的bug。

你可能感兴趣的:(调查记录,vue.js,webpack,typescript)