大家好,我是农村程序员,独立开发者,前端之虎陈随易,技术群与交朋友请在个人网站 👇 联系我 ✌️
- 个人网站 1️⃣:chensuiyi.me
- 个人网站 2️⃣:me.yicode.tech
我的所有文章均为古法手写,无 AI 添加剂,请放心食用,如果你觉得本文有用,一键三连 (点赞、评论、转发),就是对我最大的支持~
今天突发奇想,盘点一下有哪些在Node.js中需要用第三方npm包实现,而在Bun中直接内置可用的功能。
看到这篇文章的读者朋友们,不妨给我这个AI时代的手工艺人,来个一键三连,提供一些鼓励和支持吧~
话不多说,开整!
| 功能 | Node(npm包) | Bun |
|---|---|---|
| Mysql | node-mysql2 | Bun.SQL |
| PostgreSQL | pg 或 postgres | Bun.SQL |
| Sqlite | better-sqlite3 | Bun.SQL 或bun:sqlite |
| Redis | redis 或 ioredis | Bun.redis |
| Archive | tar | Bun.Archive |
| Cookie | cookie | Bun.Cookie |
| .env文件 | dotenv | 默认读取 |
| shell | zx | bun.$ |
| ffi | N-API | bun:ffi |
| ts/js转译器 | esbuid/swc | Bun.Transpiler |
| yaml | yaml | Bun.YAML |
| secrets | keytar | Bun.secrets |
| html重写 | html-rewriter-wasm | Bun.HTMLRewriter |
| 版本号 | node-semver | Bun.semver |
| 颜色处理 | color | Bun.color |
| s3存储 | 各厂商五花八门 | Bun.s3 |
| 文件系统路由 | 无对标,手动实现 | Bun.FileSystemRouter |
| npm补丁 | patch-package | bun patch |
| 编译打包 | esbuild/webpack/rollup | Bun.build |
| 静态web | 无明显对标,需web服务 | bun ./index.html |
| exe | SEA(不成熟)/pkg(无维护) | bun build |
| 随机时序ID | uuid/uuidv7 | Bun.randomUUIDv7 |
| HTML 转义 | he | Bun.escapeHTML |
| 字符长度 | string-width | Bun.stringWidth |
大概就是这么些了,如果有遗漏之处,欢迎朋友们在评论区留言。
可以看到,大量的在Node.js中需要第三方包实现的功能,在 Bun里面直接内置提供了。
有人说,这不灵活,不科学,不稳定,不解耦,说实话,我以前也是这么想的,长期使用之后才发现真香。
现实和理想,本就是不同的取舍,而且,我后面也想清楚了一个问题,就是一些基础的,简单的,明确的小功能。
比如color,uuid,string-width,ndoe-semver,yaml,cookie等等,这些本就是相对简单,固定,不容易变动,在npm中也没有什么较大变化的包,内置到运行时里面,何乐而不为呢?
至于前段时间各说纷纭的S3模块内置,国内的各种静态存储确实提供的SDK五花八门,但国外S3协议倒是相对更统一一些,总得来说我也不喜欢S3这种不如数据库协议广泛稳定的协议内置,但问题也不是很大,可以接受。
早用早享受,当然,小范围上手即可,公司级的中型,大型项目,还是Node.js更稳妥。就跟Java8一样,虽然Java17都发布了,但Java8依旧还是主流啊,图啥呢?不就图一个稳字吗。
所以,稳字当头,亦可追新,感受技术带来的乐趣和不一样的体验。
来都来了,点个关注吧~
如果团队想快速验证RAG交互原型又避免从零搭建评估体系,可以了解下RollCode,支持私有化部署和自定义组件扩展,能把检索-生成链路快速产品化,省掉很多重复踩坑的时间。