Skip to main content

2023/09/24

fnm

之前一直都是用 nvm 管理 node 版本,最近安装 nvm 的时候经常遇到超时的问题,于是搜了下有没有其他替代的库,于是发现了 fnm

它是基于 Rust 编写的包,更轻量更快速,macOS 和 Linux 系统下安装很方便,使用也跟 nvm 差不多

# 一键安装
$ curl -fsSL -k https://fnm.vercel.app/install | bash
# or:上述命令超时的话尝试用 brew 安装
brew install fnm

# 安装指定版本,并且会自动切换到对应版本
$ fnm install 16
# 使用其他版本 fnm use 18
# 查看本地已安装的版本
$ fnm ls
# 查看官方已发布的所有版本
$ fnm ls-remote | grep v16
# 速度慢的时候,可以切换到国内源
$ fnm install 16 --node-dist-mirror=https://npmmirror.com/mirrors/node

其他详细内容参考 https://github.com/Schniz/fnm

注意:如果之前用 nvm 或者其他工具管理 node 版本的话,记得先卸载,避免冲突

怎么卸载?以 macOS 为例:

  1. rm -rf ~/.nvm
  2. 移除掉 ~/.profile, ~/.bash_profile, ~/.zshrc, ~/.bashrc 文件中关于 nvm 的配置,然后保存,记得重新 source
  3. nvm --version 检查是否已移除 nvm

Google 2023 开发者大会

看了别人的一些分享,感兴趣的有几点

webGPU

webGL 的后继者,是一个更底层的图形编程接口,并且在多线程和并行计算方面有很大的优势,可以更高效地处理大规模的计算任务,提供更好的性能(据说至少 3 倍以上)。现在主流的 web3d 库(比如 threejs、babylon.js)都在适配,但只支持了部分接口,并且浏览器兼容性也比较差,所以从 webGL 迁移到 webGPU 还是得做好充分的测试和权衡

INP

新的性能指标 Interaction to Next Paint (INP),优化下一次绘制的交互。旧的指标还没吃透呢..

INP 与页面绘制之间的延迟时间有关,贯穿整个页面周期,而 FID 与用户首次交互与页面实际响应的延迟时间有关

原生的 popover 组件

https://juejin.cn/post/7238233943610032188

View Transition API

https://juejin.cn/post/7269388083342082107

不过上述新的 api,浏览器兼容性还是比较差的,慎用。其他的还有介绍 web 生态优势、webAssembly、浏览器端身份验证、Privacy Sandbox 等,可以参考