todo-list-问题汇总
todo-list-问题汇总
介绍
前段时间刚刚完成了手绘风格的ToDoList的Demo,当中遇到了不少的问题,简单在这里做一下记录。
开始
几个关键的包:
- roughjs
用于绘制手绘风格的图形,此项目为下面wired-elements
的基础,并且也是万star
⭐️项目excalidraw的基础。
只要简单的几行代码就能实现相关图形的绘制。1
2
3
4
5
6
7
8// canvas
const rc = rough.canvas(document.getElementById('canvas'));
rc.rectangle(10, 10, 200, 200);
// svg
const rc = rough.svg(svg);
let node = rc.rectangle(10, 10, 200, 200);
svg.appendChild(node); - wired-elements
基于roughjs
实现的web-component
组件库。
不同于react
组件库或者vue
组件库,web-component
是不受框架影响的,能够接入任何框架或者说直接原生使用(当然他也实现了相关热门框架的组件库封装)。
因为他本是就是被浏览器所兼容的api
。
有关web-component
的内容,可以参看ruanyifeng的blog
此项目则是使用了lit(一个用于快速构建web-component
组件库的框架)
相关问题
因为上面的两个包都已经很久没有进行维护,虽然是一个团队的项目,但是版本相关的控制没有做的很好。
问题一
正常下载上面两个包时,在使用相关组件会触发保存。
比如使用里面的下拉组件(WiredCombo)
1 |
|
解决办法
查看仓库issue
发现了解决办法。
因为没有做版本兼容,hf.fillPolygon
这个api
发生了变化,导致报错。
解决办法就是下载指定版本的roughjs
(比如上面提到的版本4.4)
但是直接使用命令控制版本下载还不够yarn add roughjs@4.4
虽然确实将版本下载成了4.4
但是查看node_modules
的wired-elements
包中,仍然引用的是4.5.2
(测试用的是node=16.14.2
,yarn=1.22.10
)
需要在项目package.json
中添加属性
1 |
|
顾名思义可以通过外部控制下载相应包的指定版本,防止冲突。
问题二
在项目即将完工之时,本地运行无问题,但是当把项目放到码上掘金上时,却发生了错误。
看报错应该是lit
中重复定义了同一个节点名称导致了报错。
接着查看组件库源代码发现了问题。
WiredCombo
组件依赖了WiredCard
和WiredItem
,目前来看问题就是引入了两次造成了多次初始化。
但是本地umi
项目并未发现异样。
解决办法
暂时还未找到有效的解决办法处理该问题,最后只得采用最朴素的办法–打包上传(`へ´*)ノ。
如果各位有了解这方面的欢迎指正。
结束
结束🔚。
顺便看看效果吧。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!