[英]Why do I get an error when I use the Vue 2 Composition API in a Vue 2 component library built with vue-sfc-rollup?
我正在使用vue-sfc-rollup構建組件庫。 該庫以 Vue 2 為目標,但使用Vue 2 組合 API以便在時機成熟時更容易移植到 Vue 3。
將庫發布到 npm 后,我使用 Vue CLI 創建了一個空白的 Vue 2 項目(以啟用 TypeScript 的 Vue 2 為目標)。
npm install <my_package>
npm install @vue/composition-api
在main.ts
,我將 Composition API 安裝為插件。
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
然后,在App.vue
中,我從庫中導入了一個組件進行測試。
import { MyComponent } from '@mypackage/components'
export default Vue.extend({
components: {
MyComponent,
}
})
但是,當我在瀏覽器中運行它時,出現以下錯誤。
data() 中的錯誤:“TypeError:無法讀取 null 的屬性 'config'”
從main.ts
中刪除Vue.use(VueCompositionApi)
可以消除錯誤,但不會加載組件。 所以看來問題是我的組件沒有正確注冊組合 API 的存在。
問題是需要告訴匯總庫具有外部依賴項。
在build/rollup.config.js
搜索const external
並將@vue/composition-api
添加到列表中。
const external = [
'vue',
'@vue/composition-api', // <-- add this!
]
然后只需構建,發布到 npm,npm 更新使用包的項目中的包,它應該可以正常工作。
感謝Github 上的這篇文章,它引導我使用external
配置和這個示例rollup.config.js
,指向該文章的鏈接准確地顯示了它應該去的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.