获得徽章 21
- 踩坑记录,用户机器上 Tinymce 编辑器无法初始化,大概报错 `xxx is not a valid selector`。
问题在于浏览器不支持 CSS `:not` 选择器的后代选择器写。
通过执行 `document.querySelectorAll('map:not(svg map):not(math map),canvas:not(svg canvas):not(math canvas),del:not(svg del):not(math del),ins:not(svg ins):not(math ins),a:not(svg a):not(math a)')` 可检测。
用 BrowserStack 测试了一下,大概在 Chrome 85 左右版本会报错。
用户的浏览器大概落后 50 个版本吧![[捂脸]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)
![[捂脸]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)
。
给用户的建议,升级浏览器。展开评论点赞 - 记一个有意思的 npm 依赖的问题,包管理器使用的 pnpm。
`sass-embedded` 在凌晨发布了 `v1.86.0` 版本,我在大约 1 个小时后升级了依赖,项目使用 `npmmirror.com` 作为镜像源。但升级依赖后却报错缺少 `sass-embedded-darwin-xxx` 依赖无法编译 sass 代码。对比 `v1.85.1` 的安装变更发现 `sass-embedded` 的 `optionalDependencies` 未写入 `pnpm-lock.yaml` 文件内。
又经过一番研究后发现 `npmmirror.com` 当前仅同步了 `sass-embedded` 至 `v1.86.0`,它的所有 `optionalDependencies` 还停留在 `v1.85.1`。应该是 pnpm 下载不到这些可选依赖,所以也全部未写入 `pnpm-lock.yaml` 文件。
这里感觉的问题:
1. npmmirror.com 在同步依赖的时候,应该尽量保证这种存在互相依赖关系的包同步更新。
2. sass-embedded 的 optionalDependencies 实际是要根据客户机器的架构必须依赖一个的,并非全部可选。
3. pnpm 在安装类似 sass-embedded 这样的包,下载不到对应包的时候,是否应该直接报错。展开评论点赞
![[捂脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)
![[吃瓜群众]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_10.42a731c.png)