You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vue-sfc-rollup构建的Vue2组件库使用Composition API报错如何解决

问题根因

该报错是因为你打包组件库时将@vue/composition-api打包进了产物,导致测试项目中存在两份不同的Composition API实例:

  • 一份是测试项目自己安装、已在main.ts完成注册的实例
  • 另一份是组件库内部自带、未完成注册的实例
    你的组件调用了未注册的那份实例,无法获取到Vue实例的config属性,因此抛出错误。
解决方案

1. 调整组件库依赖配置

打开组件库的package.json,将@vue/composition-api从dependencies移除,分别加入peerDependencies和devDependencies:

{
  "peerDependencies": {
    "@vue/composition-api": "^1.7.0",
    "vue": "^2.6.14"
  },
  "devDependencies": {
    "@vue/composition-api": "^1.7.0",
    "vue": "^2.6.14"
  }
}

该配置会告知打包工具不要将@vue/composition-api打进组件库产物,运行时直接复用业务项目侧安装的版本。

2. 调整rollup打包配置

修改vue-sfc-rollup生成的rollup配置文件,将@vue/composition-api加入外部依赖列表:

// rollup.config.js
export default {
  // 其他原有配置保持不变
  external: [
    'vue',
    '@vue/composition-api',
    // 其他不需要打包进组件库的依赖也可以加在这里
  ]
}

3. 重新发布验证

修改完配置后重新打包组件库,发布新版本到npm。测试项目卸载旧版本的组件包,重新安装新版本后重启项目即可解决报错。


内容的提问来源于stack exchange,提问作者Soviut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:51:00