昨日 pnpm 发布了 8.0.0 版本,导致公司项目的 CI 运行出错,提示错误信息:
Lockfile is up to date, resolution step is skipped
ERR_PNPM_OUTDATED_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with packages/meet-web/package.json
Note that in CI environments this setting is true by default. If you still need to run install in such cases, use "pnpm install --no-frozen-lockfile"
Exited with code exit status 1
解决办法很简单,只需要将客户端的 pnpm 升级到 8.0.0,再执行 pnpm i
更新一下 Lock 文件就可以了。
今天也在继续优化会议项目的性能和体验为主,打算继续看看打包文件的大头,其中有以部分是 @ant-design/icons
这个包的内容,比较诡异的是它被打包了两次,而且都是完整打包,明显是非常不合理的。排查后发现并不是当前项目的问题,而是另外一个内部依赖包的问题,将 import
它的所有文件都注释掉,再结合打包结果可视化就排查出来了。
这个项目我有访问权限,但是并没有跑起来,它是一个用 Dumi 写的基于 Antd 的通用组件库,看了下代码,其实大概率是这一句 import Icon from '@ant-design/icons
导致的,它是一个 export default
的写法,就会导致全量打包。更恶心的是就连官网都是这样使用的,且并没有替代方案,明显就是坑爹啊!
目前我能想到的解决办法就是不要使用这个 Icon 组件,改为自己编写容器,尽管这样使用图标组件给 Antd 组件库可能会有点奇怪,但考虑到大局还是值得的。
下班前还和产品聊了聊字幕相关交互,对比了下竞品,发现它们并没有做阻止滚动的操作。相较于别人,我们的字幕分句非常长,且界面字距较宽松,存在空间利用率较低,鼠标滑动不灵敏等问题,均需要后期调整优化。
题外话,下午收到了网购的电脑桌,但收货地址写错了,让我妈找货拉拉多折腾了一趟,购买日期恰好是上周日,也是最疲惫的搬家的两天。