jiaminghi/data-view改造版dataV for vite2.8+vue3项目

本文介绍如何通过替换PNPM模块和使用patch-package工具,解决在升级jiaminghi/data-view到最新版时遇到的import错误。作者提供了详细步骤,包括查找并覆盖特定版本的文件夹,以及在项目中集成补丁以适应Vite环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PNPM补丁文件夹替换之后2023.2.9年新报错:

        failed to resolve import "@jiaminghi/color/src" from "node_modules\.pnpm\@jiaminghi+datav-view@2.10.0\node_modules\@jiaminghi\data-view\lib\components\decoration9\src\main.vue". does the file exist?

解决方案:

        拿pnpm举例,找到项目目录node_modules\.pnpm\@jiaminghi+color@开头的文件夹,补丁内的版本是@jiaminghi+color@0.1.1的,将@jiaminghi+color@0.1.1文件夹覆盖到@jiaminghi+color@1.1.3 (后续原作者可能还会更新,最新版本号可以去https://github.com/jiaming743/Color查看)即可。

        最近在制作一个企业大屏,需要一些大屏的插件,然后就找到了一款组件,jiaminghi的data-view,它的边框是我首先较为喜欢的,调用也很简单,一两句简单的html就能完成了,美中不足的是它原生态是支持vue-cli的webpack打包工具,不支持vite,直接引入包,项目会出错的,不过经过站长一周的改造,效果还是蛮可以的,调用的图表组件均加入deep,可以通过API接口动态修改图表数据,官网给的状态更新教程也是针对vue-cli的,虽然比较耗费资源,不过deep还是个不错的解决方案。随带还解决了Uncaught SyntaxError: The requested module '/node_modules/@jiaminghi/bezier-curve/lib/index.js?v=1dc9a735' does not provide an export named 'default'跟vite require is not defined的两个问题,不过类似动态环图跟水位图这些效果,全屏跟退出全屏时可能会错位,展示还是通过iframe来实现屏幕自适应的效果。最后还是夸一夸vite的run dev速度跟打包速度,vue-cli真心没法比,后续希望原作者也能出一个vite版本的dataV。

       目前站长做了npm\cnpm\pnpm的三个兼容版本(目前兼容vite2/vite3+vue3[vite+vue2的版本需要的请私信我]+windows/macos,yarn、npm、pnpm可通用,就是node_modules底层文件位置不一样,找到了自行替换就行了,有需要的请联系站长,站长有时间会整理好放上去的,其实修改原来都差不多,下过来稍微研究下相信大家都能改造),cnpm版本下载地址jiaminghi/data-viewdataVforvite2vue3windows补丁forcnpm-Javascript文档类资源-优快云下载,pnpm版本下载地址jiaminghi/data-viewdataVforvite2vue3windows补丁forpnpm-Javascript文档类资源-优快云下载,npm版本/yarn版本通用(支持windows跟macos)下载地址jiaminghi/data-viewdataVforvite2vue3windows补丁fornpm/yarn_jiaminghi/data-view-Javascript文档类资源-优快云下载,有兴趣的小伙伴可以下载过来研究下的,然后通过patch-package来定制自己的node_modules依赖补丁包(自行度娘下哈,非常简单的操作),这样就npm install的时候就可以自行替换了,项目重装依赖的时候就不用手动去复制粘贴了,这样团队内分享项目也会比较轻松。

        2023.04.14 npm/yarn的项目关于patch-package的简单说明,这里拿npm做下说明:

        ​①安装patch-package,固定@jiaminghi/color版本为0.1.1,这一步很关键,我的补丁是基于0.1.1版本修改过来的

        npm i patch-package

        npm i @jiaminghi/color@0.1.1

        ②下载补丁覆盖压缩包文件夹到node_modules

        ③生成patch-package补丁

        npx patch-package @jiaminghi/c-render

        ​npx patch-package @jiaminghi/charts

        npx patch-package @jiaminghi/color

        npx patch-package @jiaminghi/data-view

        ④package.json中script添加"postinstall":"patch-package"

        ⑤通过git分享给项目中的其他成员,后续通过npm i即可,无需手动复制粘贴补丁文件夹

默认新装报错1

[plugin:vite:vue]

/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue:8:11

6  |        >

7  |         <rect

8  |            :key="i"

   |             ^

9  |            :fill="mergedColor[Math.random() > 0.5 ? 0 : 1]"

10 |            :x="point[0] - halfRectWidth"

默认报错2:

The requested module '/node_modules/@jiaminghi/c-render/lib/index.js?v=66938fb6' does not provide an export named 'default

### @jiaminghi/data-view 插件本 ^2.10.0 的常见问题与解决方案 #### 一、插件简介 `@jiaminghi/data-view` 是一款用于数据可视化展示的 Vue 组件库,提供了丰富的图表组件以及装饰性动画效果。然而,在实际开发过程中可能会遇到一些兼容性和配置方面的问题。 --- #### 二、TypeScript 支持问题 当项目使用 TypeScript 开发时,可能会出现 `@jiaminghi/data-view` 不被识别的情况。这是因为该插件本身未提供完整的 TypeScript 类型声明文件[^2]。 解决方法如下: 在项目的 `shims-vue.d.ts` 文件中手动声明模块: ```typescript declare module &#39;@jiaminghi/data-view&#39;; ``` 通过上述方式可以告知 TypeScript 编译器此模块的存在,从而避免类型错误提示。 --- #### 三、Vue 3 兼容性问题 如果当前项目基于 Vue 3 构建,则需要注意 `@jiaminghi/data-view` 默认仅支持 Vue 2。为了使其能够在 Vue 3 中正常运行,需安装适配包并调整引入方式[^1]。 具体操作步骤如下: 1. 安装适配工具 `vue-demi`: ```bash npm install vue-demi --save ``` 2. 修改插件注册逻辑: 在入口文件(如 `main.js` 或 `main.ts`)中按以下方式进行初始化: ```javascript import { createApp } from &#39;vue&#39;; import DataView from &#39;@jiaminghi/data-view&#39;; const app = createApp(App); app.use(DataView); app.mount(&#39;#app&#39;); ``` --- #### 四、样式加载失败问题 部分开发者反馈在生产环境中可能出现样式丢失的现象。这通常是因为 Webpack 配置未能正确解析 CSS 资源所致。 建议检查构建工具链中的 loader 设置,确保已启用对 `.css` 和 `.scss` 文件的支持。例如,在 `vue.config.js` 中添加以下内容: ```javascript module.exports = { css: { extract: true, sourceMap: false, loaderOptions: { sass: { additionalData: `@import "~@jiaminghi/data-view/src/style";`, }, }, }, }; ``` --- #### 五、性能优化注意事项 由于 `@jiaminghi/data-view` 提供了许多动态渲染功能,因此在大规模数据场景下可能引发性能瓶颈。以下是几种常见的优化策略: 1. **懒加载**:对于无需立即显示的内容,可采用异步加载机制减少初始渲染负担。 2. **虚拟列表技术**:针对长列表或复杂表格结构,考虑实现滚动区域内的局部更新。 3. **合理设置帧率**:某些动画效果允许自定义刷新频率参数,默认值过高可能导致卡顿现象发生。 --- #### 六、其他潜在问题及其处理办法 - 如果发现特定组件无法正常使用,请确认其 API 是否存在变动,并参照官方文档最新说明进行调用。 - 当本地依赖冲突导致异常行为时,尝试清理缓存后再重新安装指定范围内的稳定本: ```bash rm -rf node_modules package-lock.json && npm install ``` --- ### 示例代码片段 以下是一个简单的示例演示如何集成 `Decoration6` 组件到页面布局之中: ```html <template> <div class="container"> <dv-decoration-6 style="width: 200px; height: 50px;" /> </div> </template> <script lang="ts"> import { defineComponent } from &#39;vue&#39;; export default defineComponent({ name: &#39;Example&#39;, }); </script> ``` ---
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值