PNPM 安装依赖报错 / 打包代码问题

2023-03-29

昨日 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 组件库可能会有点奇怪,但考虑到大局还是值得的。

下班前还和产品聊了聊字幕相关交互,对比了下竞品,发现它们并没有做阻止滚动的操作。相较于别人,我们的字幕分句非常长,且界面字距较宽松,存在空间利用率较低,鼠标滑动不灵敏等问题,均需要后期调整优化。

题外话,下午收到了网购的电脑桌,但收货地址写错了,让我妈找货拉拉多折腾了一趟,购买日期恰好是上周日,也是最疲惫的搬家的两天。

啥啊 阵雨 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君