Skip to main content

7月17日内容汇总

· 4 min read
加菲猫

📒 Vite 3.0 正式版发布

Vite 3.0 发布: 核心更新盘点与分析

Vite 3.0 正式发布,下一代前端构建工具!

https://vitejs.dev/blog/announcing-vite3.html#dev-improvements

📒 nestjs + prisma 开发全栈项目

https://www.prisma.io/docs/getting-started

https://www.prisma.io/nestjs

📒 成为优秀的TS体操高手 之 TS 类型体操前置知识储备

📒 如何在React中应用SOLID原则

📒 2022 年 CSS-in-JS 技术的又一匹黑马!

📒 还在用命令行看日志?快用Kibana吧,可视化日志分析YYDS!

📒 【面试造火箭,入职拧螺丝】万字详解如何从0开始手写一个Promise

⭐️ Webpack5 核心原理与应用实践

📒 Webpack 特有的优化策略

由于 Webpack 出现的时候,还没有 ESM 规范,所以 Webpack 底层根据 CJS 规范实现 __webpack_require__ 加载模块,这就导致 Webpack 打包会出现大量模板代码,增加打包后体积。相比之下,Rollup 基于 ESM 规范打包,产物代码就很干净。

1. Scope Hoisting

作用域提升,个人觉得这个应该是参考了 Rollup,但是 Webpack 的模块合并还是非常有限,必须是只引用了一次的模块才能合并,否则会造成模块冗余问题。

默认 optimization.concatenateModules 在生产环境下会启用:

module.exports = {
//...
optimization: {
concatenateModules: true,
},
};

https://webpack.docschina.org/plugins/module-concatenation-plugin/

2. 确定性模块 ID

生产环境下,Webpack 的模块 ID 默认按模块解析顺序自增,即使源码没有修改,但是有时模块 ID 会发生变化,导致哈希改变,文件缓存失效。通过配置 moduleIds: 'deterministic' 有利于持久化缓存:

module.exports = {
//...
optimization: {
moduleIds: 'deterministic',
},
};

https://webpack.docschina.org/configuration/optimization/#optimizationmoduleids

3. Runtime Chunk

运行时代码单独分包,一般 SPA 应用问题不大,多页应用打包,运行时代码单独分包可以配置持久化缓存。配置 runtimeChunk: 'multiple' 会为每一个 Initial Chunk 添加一个 Runtime Chunk,配置 runtimeChunk: 'single' 则会创建一个所有 Initial Chunk 共享的 Runtime Chunk:

module.exports = {
//...
optimization: {
runtimeChunk: {
name: 'runtime',
},
},
};

https://webpack.docschina.org/configuration/optimization/#optimizationruntimechunk

📒 MySQL Redo Log 深入探索

⭐️ 详解 Vite 依赖预构建流程

⭐️ VueUse scripts,他们都模仿过的脚本

⭐️ 【第2669期】前端开发中的流程自动化与提效实践

📒 隔离并修复 Node 应用程序中的内存泄漏

📒 硬件加速中的“层”和层叠上下文中的“层”,是一个东西吗

📒 《Go学习路线图》带你少走弯路,Let's Go !

📒 前端原型链污染漏洞竟可以拿下服务器shell

📒 我在 Shopee 工作这两年

📒 五个 React-Query 和 SWR 的小技巧

⭐️ ⭐️ 「React 进阶」 React 全部 Hooks 使用大全 (包含 React v18 版本 )

📒 React 状态管理的新浪潮

⭐️ ⭐️ 函数式编程术语