这是 「MDH:前端周刊」 第 0038 期,发表于:2022/01/31,每周一上午 9 点更新,包含前端的趋势和好文,欢迎订阅。
封面图:僵尸校园。
❄️ TL;DR
👉 Umi 4 RC
👉 TSC 的 Go 移植版
👉 prettier-plugin-tailwindcss
👉 HTTPie 3
👉 React Server Component 详解
👉 monorepo.tools
👉 别绕过直接改
👉 Deno 2021
👉 重写 swyx.io
👉 RepoTracker
⚡ 展开讲讲
Umi 4 RC
https://zhuanlan.zhihu.com/p/462930831
Umi 4 经过几个月的开发,终于要和大家见面了。相比 Umi 2 到 3,3 到 4 的变化是巨大的,开发时间也更长,但我们尽量把对于开发者的影响降低到最小。文中列了 16 个改进点,具体这里不展开。欢迎感兴趣的同学尝鲜,RC 阶段提供手把手微信群服务。
TSC 的 Go 移植版
https://kdy1.dev/posts/2022/1/tsc-go
SWC 作者 Fork TypeScript 的类型检查器 tsc 到 Go 语言,解类型检查慢的问题。TypeScript 编译速度问题可以用 esbuild 或 swc 来解,但 tsc 目前还无解,已逐渐成为日常开发和 CI/CD 中最慢的一环。非常期待这个项目,预计可提速百倍。
prettier-plugin-tailwindcss
https://tailwindcss.com/blog/automatic-class-sorting-with-prettier
tailwindcss 增加了一个 prettier 插件来对 class name 做排序,弥补了 prettier 在这一垂直领域的空缺。排序规则是按 tailwindcss 产出 css 的顺序来的,这意味着 base 类的肯定在前,并且不提供排序规则的配置,这也符合 prettier 主观武断的传统,有时给选择反而不是好选择。
# 安装即启用
$ npm install -D prettier prettier-plugin-tailwindcss
HTTPie 3
https://httpie.io/blog/httpie-3.0.0
HTTPie 是 HTTP 请求的命令行,目标是让 web service 在命令行中的交互更友好,支持测试、Debug 和交互。他从命令行起步,目前 6W+ Star,发展了 Web、Desktop 和 Mobile 应用,还有 Newsletter 等,有自己的团队,已初见规模。
mac 下可以这样快速上手。
// 1、安装
brew install httpie
// 2、发请求
http --offline pie.dev/post hello=offline
HTTPie 3 支持了 Nested JSON、Plugin Manager、响应元数据、提速等。Nested JSON 适用于处理复杂的 JSON 结构,基于现有的 HTML JSON Form 规范,用 [] 表示嵌套,比如 platform[apps][]=Mobile 等于 { platform: {apps: [‘Mobile’]} };Plugin Manager 提供命令行式的插件管理,比如 http plugins list、http plugins install plugin-name 等。
React Server Component 详解
https://blog.plasmic.app/posts/how-react-server-components-work/
Plasmic.app 的工程师写了一篇关于 RSC 的文章,推荐阅读。
monorepo.tools
Nx 团队很用心的整理,你想知道的所有关于 monorepo 及其工具对比、文章、视频、书籍都能在此找到。
文章先解答了三个问题。什么是 Monorepo,为什么用 Monorepo,Monorepo 有啥特点?以及 Monorepo、Polyrepo 和 Monolith 的区别。然后介绍 Monorepo 工具的对比,见上图,不出意外,Nx 全绿。由于是 Nx 团队整理,阅读时需注意对比的维度是否足够客观。最后推荐了一些文章、视频和书。
别绕过直接改
https://catern.com/change_code.html
这篇文章的精华全在标题里了,「改代码,别绕过」。
遇到问题,很多同学第一个想法是怎么绕过,尤其是需要改其他人写的代码时,会更容易打退堂鼓。绕过是最省力的方式,但却容易给未来留坑。可以找到很多绕过的理由,比如没权限改、不知道怎么改、不知道源码在哪、不会跑测试、不会执行构建、环境有问题等等。尽可能别给自己找借口,也不要给自己设限。
Deno 2021
https://deno.com/blog/deno-in-2021
一些摘要如下。
发布 Deno Deploy,允许部署 TypeScript 和 WASM 等的 serverless 云;1.9 引入 native HTTP server binding,允许创建基于 hyper 的高性能 HTTP 服务器;2021.8 Deno 加入 MDN 兼容表;Deno 1.13 引入 Foreign Function Interface API,允许使用基于 C calling convention 的语言来写扩展,代替之前的 unstable 插件系统;Deno 1.15 中引入 Node 兼容模式的首个预览版,允许 Deno 无需修改直接跑 node 应用和 npm 包;Deno 2 讨论中,很快会有 Deno 2 的 Roadmap,预计年中发布。
重写 swyx.io
https://www.swyx.io/rewrite-2022/
作者遇到两个问题,1)每次构建需要全量编译所有 Blog 2)Dev.to 走下坡路,API 不稳定而且增加了很多限制,使用它作为 Headless CMS 已不太合适。解法分别是用 SvelteKit 重写,然后用 Github Issues 作为 CMS。此外还有用到 TailwindCSS 3。
RepoTracker
可以跟踪 repo 数据的简单应用。基于 nuxt 3,部署在 vercel。
🕒 订阅
本期刊有几种订阅方式,
1、本期刊已开通 NewsLetter 的订阅方式,方便不喜欢公众号阅读的朋友们,访问 https://mdhappy.substack.com/ 或扫描下方二维码了解详情。
2、微信搜索 「云谦和他的朋友们」 或扫描下方二维码,在我的公众号订阅更新。
(完)