DataV在Vue3+vite项目中启动不了报错

DataV在vue3+vite项目中报错,按照官方vue3项目中的完全导入方式引入:

javascript 复制代码
import DataV from '@dataview/datav-vue3';
// vue使用DataV
app.use(DataV);

结果项目启动了,但一直卡在加载界面,Vscode终端也有报错,提示找不到模块入口,这个原因是比较玄学,根据DataV包的package.json的描述:

模块入口文件为:当前目录下es文件夹下的index.js文件,但实际文件后缀为.mjs,更改json文件中后缀为.mjs解决了终端报错,但后来又改回去发现也可以正常使用不报错了,目前未知是何原因引起,最好不要改第三方包,所以暂且保持它原来的面貌吧

打开浏览器控制台发现有如下报错信息:

搜嘎~,原来是包不提供默认导出的方式,所以import DataV from '@dataview/datav-vue3'这个语句是错误的,官方文档害人不浅呐:

然后按照惯有思路,我们可以具名导入使用,如果想全部导入,我们可以按照这样写:

javascript 复制代码
import * as DataV from '@dataview/datav-vue3';
// vue使用DataV
app.use(DataV);

终于松一口气,这样总可以了吧,yarn dev运行项目,打开杯子,喝口茶,巴适滴很, 项目运行,看着浏览器中项目加载出来的界面,心中哼哼几句歌词......

咦~不对呀,这么长时间还没加载DataV的边框组件,我看看怎么个事!

控制台:

我**你个**,让我看看你这源码怎么写的!

我~特~发~,只有具名导出,Are you crazy?让我按照app.use()的方式使用,结果都没有对应方法

怎么整捏,喝喝茶,思考思考,嗯......有了!我完全可以遍历所有到处的模块,然后自己写个插件用vue注册一下这些组件,嗯......想想这样做多是一件美事啊!开搞:

javascript 复制代码
import * as DataV from '@dataview/datav-vue3';

// 随便写即可
export default function (app) {
  const module = Object.keys(DataV);
  for (const m of module) {
    if (m === 'Loading') continue; // 因为项目饿了么注册过这个组件,就不用datav提供的,跳过本次循环
    app.component(DataV[m].name, DataV[m]);
  }
}

en~,main.js文件中引用我们写的插件函数,这里我的文件放在utils目录下,引入一下,然后插件启动!

javascript 复制代码
import DataV from '@/utils/datav';
app.use(DataV);

忐忑的心颤抖的手,点开浏览器看你个狗,呀,完美解决!

破儿费科特,666,自此,差不多大概也许可能解决了,然后刷刷刷一顿操作,看看整个页面

嗯,阔以,OK了奥,散会!

相关推荐
蓝胖子的多啦A梦43 分钟前
Vue+element 日期时间组件选择器精确到分钟,禁止选秒的配置
前端·javascript·vue.js·elementui·时间选选择器·样式修改
海天胜景1 小时前
vue3 el-table 列增加 自定义排序逻辑
javascript·vue.js·elementui
用户3802258598241 小时前
vue3源码解析:diff算法之patchChildren函数分析
前端·vue.js
源码站~2 小时前
基于Flask+Vue的豆瓣音乐分析与推荐系统
vue.js·python·flask·毕业设计·毕设·校园·豆瓣音乐
江城开朗的豌豆2 小时前
路由守卫通关秘籍:这些钩子函数让你的页面跳转稳如老狗!
前端·javascript·vue.js
加减法原则2 小时前
Vue 模板引用(ref)全面指南:从基础到高级应用
vue.js
sunbyte2 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DragNDrop(拖拽占用组件)
前端·javascript·css·vue.js·vue
快起来别睡了2 小时前
Vue 响应式系统与 `computed` 属性详解:小白也能学会的完整指南
vue.js
江城开朗的豌豆2 小时前
Vuex中mutations和actions的那些事儿:为啥非要分家?
前端·javascript·vue.js
opbr2 小时前
🚫🔨 不用重构!教你用 Vue3 + TSX 🧹优雅收纳后台页面一堆操作按钮
前端·vue.js