.gitattributes 正确使用姿势

本文通过一个实际案例,探讨了 .gitattributes 文件在 Git 项目中如何正确配置以统一行尾序列,避免二进制文件损坏。文章分析了前置后添加与全局后添加两种策略,并提供了迁移和兼容性指南,适合工程师优化项目配置。

yarn.lock 引发的血案

文章通过一个由 yarn.lock 文件缺失引发的实际 bug,深入探讨了 Node.js 包管理中 lock 文件的作用。它分析了 npm 从嵌套依赖到扁平化安装的演进,解释了依赖不确定性问题的根源,并对比了 yarn、npm 和 pnpm 的解决方案,包括软链接等优化策略。

vite 源码解析之 create-vite

本文深入剖析 Vite 官方脚手架 `create-vite` 的源码实现,聚焦于其如何通过 minimist 解析命令行参数、prompts 实现交互式问答以及 kolorist 优化终端输出,来构建一个高效、用户友好的项目初始化流程。

使用 TypeScript 来编写 cli 程序

探讨在 Node.js CLI 开发中采用 TypeScript 的实践方案,对比了 tsc、rollup 和 ts-node 等工具在代码编译、静态资源处理和运行时性能方面的权衡,为复杂项目提供架构选择参考。

漫谈异步函数执行的前世今生

文章追溯了JavaScript异步编程的演进历程,从回调函数到Promise、Generator,最终到async/await,通过爬虫示例剖析了各阶段的技术痛点与解决方案,探讨了底层机制和架构思考。

如何编写爬虫

探讨在 Node.js 环境下使用 Cheerio 库解析服务器渲染的 HTML 页面,构建爬虫以提取结构化数据,并分享基于实际购房场景的定时推送实现。

漫谈程序初始化

文章从软件生命周期切入,探讨了初始化阶段的技术实现,区分了前置与非前置任务。以数据库连接为例,详细分析了代理模式、预先队列和继承重写等异步初始化策略,并提及顶层await的潜在应用。