Vue3使用dataV報(bào)錯(cuò)問(wèn)題的解決方法
DataV官網(wǎng):https://datav-vue3.jiaminghi.com/guide/
vue2中是沒有問(wèn)題的,這是第一次在vue3中使用發(fā)現(xiàn)的報(bào)錯(cuò)問(wèn)題
報(bào)錯(cuò)問(wèn)題
首先安裝:
pnpm add @dataview/datav-vue3
1. 全局注冊(cè)報(bào)錯(cuò)
然后main.ts全局注冊(cè)
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import dataV from '@dataview/datav-vue3'
const app = createApp(App)
app.use(router)
.use(dataV)
app.mount('#app')
然后我們pnpm dev啟動(dòng)的時(shí)候直接報(bào)錯(cuò),并且發(fā)現(xiàn)dataV下面有波浪線報(bào)錯(cuò)

2. 按需引入報(bào)錯(cuò)
<template>
<div class="index">
<div class="charts-content">
<BorderBox1>Content</BorderBox1>
</div>
</div>
</template>
<script setup lang='ts'>
import { BorderBox1 } from '@dataview/datav-vue3'
</script>
<style scoped>
發(fā)現(xiàn)還是同樣的報(bào)錯(cuò)

解決
后來(lái)發(fā)現(xiàn)該庫(kù)中的package.json中給的出口有問(wèn)題
找到node_modules/@dataview/datav-vue3/package.json
"module": "./es/index.js",
修改為
"module": "./es/index.mjs",// 修改后的
如果要全局注冊(cè)的話還需要在node_modules/@dataview/datav-vue3/es/index.mjs添加:
//D, E, G, I, K, g, C, P, h, k, u, w, z, N, Q, S, U, W, Y, _, oo, eo分別是BorderBox1...等組件
export default function(app) {
const components = [D, E, G, I, K, g, C, P, h, k, u, w, z, N, Q, S, U, W, Y, _, oo, eo]
components.forEach(component => {
app.component(component.name, component);
})
}
或者
export default {
install(app) {
const components = [D, E, G, I, K, g, C, P, h, k, u, w, z, N, Q, S, U, W, Y, _, oo, eo]
components.forEach(component => {
app.component(component.name, component);
})
}
}
上述修改完之后就可以正常引入使用了,但我們修改的是node_modules中的源碼,如果下次再安裝npm install安裝依賴的時(shí)候還是會(huì)有同樣的問(wèn)題,所以我們要在package.json中scripts中添加腳本,即執(zhí)行完npm install之后再自動(dòng)執(zhí)行一個(gè)腳本將node_modules中的源碼替換掉,這需要我們提前將修改好的文件放在項(xiàng)目目錄中,如下:

新建lib文件夾,將修改好的文件放在其中
然后在package.json中scripts中添加
"scripts": {
"postinstall": "node install-datav-patch.js"
}
然后在根目錄下新建install-datav-patch.js文件:
install-datav-patch.js
const path = require('path')
const fs = require('fs')
const libPackagePath = path.join(__dirname, 'lib/dataview/datav-vue3/package.json')
const libIndexPath = path.join(__dirname, 'lib/dataview/datav-vue3/es/index.mjs')
const modulesPackagePath = path.join(__dirname, 'node_modules/@dataview/datav-vue3/package.json')
const modulesIndexPath = path.join(__dirname, 'node_modules/@dataview/datav-vue3/es/index.mjs')
fs.writeFileSync(modulesPackagePath, fs.readFileSync(libPackagePath))
fs.writeFileSync(modulesIndexPath, fs.readFileSync(libIndexPath))
最后再重新執(zhí)行npm install或者pnpm install方法即可
到此這篇關(guān)于Vue3使用dataV報(bào)錯(cuò)問(wèn)題的解決方法的文章就介紹到這了,更多相關(guān)Vue3使用dataV報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue通過(guò)tailwindcss實(shí)現(xiàn)class動(dòng)態(tài)綁定
這篇文章主要介紹了vue通過(guò)tailwindcss實(shí)現(xiàn)class動(dòng)態(tài)綁定,文中給大家介紹了一些常用類名語(yǔ)法記錄,對(duì)vue動(dòng)態(tài)綁定class相關(guān)知識(shí)感興趣的朋友一起看看吧2023-07-07
利用Vue3和Plotly.js創(chuàng)建交互式表格
在數(shù)據(jù)分析和可視化領(lǐng)域,經(jīng)常需要以表格的形式展示數(shù)據(jù),Plotly.js 是一款功能強(qiáng)大的 JavaScript 庫(kù),不僅可以創(chuàng)建交互式圖表,還可以動(dòng)態(tài)生成 HTML 表格,本文給大家介紹了如何用Vue3和Plotly.js創(chuàng)建交互式表格,需要的朋友可以參考下2024-07-07
vue基于vant實(shí)現(xiàn)上拉加載下拉刷新的示例代碼
普遍存在于各種app中的上拉加載下拉刷新功能,本文主要介紹了vue基于vant實(shí)現(xiàn)上拉加載下拉刷新,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Vue router動(dòng)態(tài)路由實(shí)現(xiàn)過(guò)程
Vue動(dòng)態(tài)路由(約定路由),聽起來(lái)好像很玄乎的樣子,但是你要是理解了實(shí)現(xiàn)思路,你會(huì)發(fā)現(xiàn)沒有想象中的那么難,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)動(dòng)態(tài)路由添加功能的簡(jiǎn)單方法,需要的朋友可以參考下2023-03-03
vue+element-plus上傳圖片及回顯問(wèn)題及數(shù)量限制
本文主要介紹了vue+element-plus上傳圖片及回顯問(wèn)題及數(shù)量限制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
vue中的任務(wù)隊(duì)列和異步更新策略(任務(wù)隊(duì)列,微任務(wù),宏任務(wù))
這篇文章主要介紹了vue中的任務(wù)隊(duì)列和異步更新策略(任務(wù)隊(duì)列,微任務(wù),宏任務(wù)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

