Blog Catalog

目录

Markdown: Syntax Overview Philosophy Markdown is intended to be as easy to read and easy to write as is feasible. Readability, however, is emphasized above all else. A Markdown formatted document should be publishable as...

2026-05-316 min

Barrel File 通常指的是那种专门用来集中导出的文件,比如在一个目录下写一个 ,然后把其他模块统一 出去: 这样做的好处很明显:对外暴露的 API 更集中,调用方也不用关心内部文件结构。比如一个包可以只暴露 这个入口,而不是让使用者去记 、 这些路径。😋 但 Barrel File 的一些 issue 也因此体现出来了:依赖关系看起来更简单,但是可能让真实的模块依赖变得不透明。 此外,如果一个项目没有构建步骤,或者非常依赖原生...

2026-03-301 min
note模块化

SSH隧道基本原理 SSH不仅仅是远程登录工具,更重要的是它在客户端和服务端之间建立 加密通道 。当SSH登录成功后: 客户端输入的命令(如 )会被封装成加密数据包传输到服务端 命令执行结果以同样的加密方式返回给客户端 防火墙只知道进出的是SSH数据包,无法知道数据包内容 网络访问限制场景 假设有以下网络拓扑: SSH客户端(本地电脑) SSH服务端(跳板机,有公网IP) 数据库服务器(内网,只有内网IP) 存在两个主要限制: 1. 网...

2026-03-042 min
noteSSH

我们常用的语义版本控制的版本号由三部分组成: 。 :进行不兼容的 API 更改时递增。 :以向后兼容的方式添加功能时递增。 :进行向后兼容的错误修复时增加。 比如 , 是主版本, 是次要版本, 是修订版本。 但是最近在浏览各种项目时,注意到开源社区的一些关注度较高(几十 K 的 start)的项目都出现了一种如图所示的奇怪的版本号控制方案的转变:从 v 0.XX.Y 转变为 vXX.Y.Z。 后来了解到这是由开源社区的 Anthony...

2025-12-301 min
blog🤔

不同入口字段(main、exports、module、browser)的对比 在 中, 、 及其他相关字段(如 、 )的核心作用是 定义包的入口文件 ,但它们在设计目标、功能灵活性、兼容性和使用场景上存在显著差异。理解这些区别是构建跨环境(Node.js、浏览器、ESM/CJS)兼容的 npm 包的关键,以下从核心定义、功能对比、优先级和最佳实践四个维度展开分析: 一、核心字段定义与设计目标 首先明确每个字段的基本用途和最初设计场景,这...

2025-12-1213 min
note包管理

为什么使用pnpm 使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次(安装到项目中的独立的node modules中)。 而在使用 pnpm 时,依赖会被存储在 ( <font style="color:rgb(42, 46, 46);" content addressable store</font ) 中,默认是 优点 1. 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有 1...

2025-12-126 min
note包管理

构建系统(讲义版) 引子 Q:同学们是怎么编译和运行自己的代码的呢? A: 诶🤓☝,点“运行”就可以了啊! B:俺用的是VSCode咋点击运行按钮一直用不了啊啊啊啊啊啊啊...😭 A:我不到啊,我用的VS2022 :(🤪 C:Linux服务器怎么没有开图形化界面啊啊啊啊啊怎么点运行啊🤡 D:上课学了通过gcc在命令行执行编译命令,但是每次都要重复写命令。🧐 E:太好了是 自动补全 和 命令历史记录 ,我们有救了... Bro,...

2025-04-0211 min
blog构建系统