惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
N
Netflix TechBlog - Medium
量子位
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
H
Help Net Security
D
Docker
D
DataBreaches.Net
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
B
Blog
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
F
Full Disclosure
GbyAI
GbyAI
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
Recent Announcements
Recent Announcements
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
博客园 - 叶小钗
小众软件
小众软件
V
Visual Studio Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
Recorded Future
Recorded Future
J
Java Code Geeks
雷峰网
雷峰网
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Webroot Blog
Webroot Blog
美团技术团队
N
News | PayPal Newsroom
G
Google Developers Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园_首页
V
Vulnerabilities – Threatpost

Node.js

告别 Django Admin!这个 NodeJS 全栈框架让你在 DTO 中直接配置 Table/Form 渲染 Bun 用 Rust 重写的 PR 已合并到主分支 TanStack 最新版本被投毒,病毒会盗密钥和报复性删除用户目录 Bun 从 Zig 到 Rust 的迁移已经实锤,下个版本可能成为最后一个 Zig 版本 bun 要从 zig 迁移 rust 了, 100 万刀被 claude 收购了,开始影响语言决策了 - V2EX JS/Node 已经是新时代的 Java 了吧 Node.js 服务大部分时候连阿里云 Redis 是正常的,但是又时候会突然报 read ECONNRESET? - V2EX 2026 年, node 写后端你用的 nestjs, fastify, honojs 还是其他? npmmirror 竟然有些包没有更新到最新版本 大家 typescript 下用的最多的是后端框架是哪个? 求助,大家 node.js 是怎么代理的 ai 时代, node.js 成为核心语言 NestJS + Swagger UI:非 200 状态码 Execute 时返回值不显示问题 深入 alova3 服务端能力:分布式 BFF 层到 API 网关的最佳实践 - V2EX Anthropic 收购 Bun 关于 Node.js 中的事件循环问题。 - V2EX Hoa - 一个极简 Web 框架 有没有 v 友遇到 windows10 丢失系统环境变量的问题 Esbuild 进程占用高 有没有推荐的 Nodejs 的 sass 多租户系统 2025 年 node 项目,乱成一锅粥的 typescript ESM import 写法该怎么选? [EvanNav 6.3.1] 如何删除加载页面,让 Nav 更符合你的需求⁉️ 删除 node_modules 文件夹非常耗时 Node.JS 作者 Ryan Dahl 的故事 Vona ORM 文档终于肝完了,欢迎拍砖 Node.js 官网更新了 adonisjs 有没有现成的注册登录库? 现在流行的 Node.js 做后台比传统的 Java .Net 有哪些优势? 现在大家开发 api 都用什么 node 框架?有没有想 rails 一样,功能齐全的框架? Prisma 不能优雅的支持 DTO,可以试试 Vona ORM 比 prisma studio 更好性能的类 studio 数据管理 node 怎么获取剪切板中复制的文件信息 写了个 js 小工具库, 希望大家给点建议 NodeJS 阿里云服务器,经常遇到整个服务器卡死,系统盘读操作被占满 不用继承就能给类加事件系统?这波原型链操作我给满分 做了一个函数式、带类型、超顺手的微型事件库,已发布到 npm redis 集群模式支持批量操作库 mget/mset 😂😂浪费了 3 天时间尝试在新项目中使用 prisma,最后还是决定回到 typeorm - V2EX 吐槽一下 bun node.js 有什么比较好用的微信 sdk - V2EX nodejs 后端,怎么比较好的生成接口文档?(排除 nest.js) - V2EX Cherry Studio 只用 bun.exe 怎么绕过去? 把 node.js 程序打包成可执行文件,不过只有 10M - V2EX 前端包管理工具调研 - V2EX 请问下 JavaScript 的 CustomEvent 和自己手搓的发布订阅哪个更快效率更好? 同样是运行 npm run build 打包程序 cursor 比 hbx 慢 1000 倍 从零开始开发一个 MCP Server! 现在还有人 eggjs 吗? - V2EX TypeScript7.0 用 go 重写, 10 倍快,看了两遍确定是真的... - V2EX 做了几个扩展,顺便整理了一下开源了一个浏览器扩展开发模版 prisma 运行 migrate 命令之后,总会把其他不相关的表给删除 问个页面跳转访问方案 求助! v 友们求推荐靠谱的 node.js 学习及面试网站和视频 大家正使用哪个 node 版本,会保持用最新版吗? 请教大家一个在 hono.js 中使用 ts 的类型兼容性问题
告别 Node.js 工具链地狱: Bun 如何让 MCP Server 开发效率翻 3 倍 - V2EX
ckken · 2025-05-28 · via Node.js

从多个依赖包到 1 个运行时,从复杂配置到零配置开发——这就是 Bun 带给 MCP Server 开发的革命性变化

在传统的 MCP Server 开发中,我们需要搭建一套复杂的工具链:

📦 依赖地狱

Figma-Context-MCP 为例,一个标准的 TypeScript MCP 项目需要:

构建工具链

  • tsup - TypeScript 构建工具,编译 TS 到不同 Node 版本的 JS
  • typescript - 类型系统支持
  • @modelcontextprotocol/sdk - MCP 协议 SDK

开发服务

  • nodejs - 运行时环境
  • node-watch - 文件变化监听
  • express - Web 框架
  • cross-env - 跨平台环境变量
  • dotenv - 环境配置管理

测试框架

  • jest - 测试框架
  • ts-jest - TypeScript 测试适配器

🐌 开发体验痛点

  • 编译等待:每次修改都需要 tsup 重新构建
  • 调试困难:streamable-http 和 SSE 需要编译后才能看到结果
  • 配置复杂:需要配置 tsup 、jest 、typescript 等多个工具
  • 依赖管理:npm 安装慢,node_modules 体积庞大

Bun:一个运行时解决所有问题

f2c-mcp 项目 展示了 Bun 的完美解决方案:

Bun-vs-node-comparison-1-1024x704.png

🚀 统一构建:零配置开箱即用

{
  "build": "bun run bun.build.script.ts",
  "dev": "bun --watch run bun.build.script.ts"
}

一个脚本搞定所有构建需求:

const script = process.env.npm_lifecycle_script || ''
const isDev = script.includes('--watch')

const result = await Bun.build({
  entrypoints: ['src/stdio.ts', 'src/cli.ts', 'src/streamable-http.ts'],
  outdir: 'dist',
  format: 'cjs',
  target: 'node',
  sourcemap: 'linked',
  minify: !isDev,
  env: isDev ? 'inline' : 'disable',
})

关键优势

  • 🔥 内置构建器,无需 tsup 、webpack 等外部工具
  • ⚡ 热重载开发,代码修改立即生效
  • 📦 自动优化打包,生产环境性能最佳

🧪 原生测试:告别配置地狱

{
  "test": "bun test src/test/api.test.ts",
  "e2e": "bun test src/test/e2e.test.ts"
}

无需配置

  • ❌ 不需要 jest 配置文件
  • ❌ 不需要 ts-jest 适配器
  • ❌ 不需要 babel 转换
  • ✅ 直接运行 TypeScript 测试文件

🌐 完美服务:生产级 Web 支持

{
  "http:dev": "bun --env-file=.env --watch run src/streamable-http.ts",
  "http:prod": "bun --env-file= run src/streamable-http.ts"
}

Bun 1.2+的突破

  • 🎯 100%兼容 Node.js API
  • 🚀 Express 框架完美运行
  • ⚡ 性能提升 3-5 倍
  • 🔄 streamable-http 和 SSE 实时调试

性能对比:数据说话

指标 Node.js 工具链 Bun 方案 提升幅度
项目启动时间 3-5 秒 0.5-1 秒 5 倍提升
热重载速度 2-3 秒 <500ms 6 倍提升
测试执行速度 10-15 秒 2-3 秒 5 倍提升
内存占用 200-300MB 50-80MB 3 倍减少
依赖包数量 15+ 1 极简化

迁移指南:3 步完成升级

Step 1: 替换 package.json 脚本

{
  "scripts": {
    "build": "bun run build.script.ts",
    "dev": "bun --watch run build.script.ts",
    "test": "bun test",
    "serve": "bun --watch run src/server.ts"
  }
}

Step 2: 创建构建脚本

// build.script.ts
const result = await Bun.build({
  entrypoints: ['src/index.ts'],
  outdir: 'dist',
  target: 'node'
})

Step 3: 移除冗余依赖

# 可以移除的包
npm uninstall tsup typescript ts-jest jest node-watch cross-env

跨平台部署:一次构建,处处运行

Bun 的交叉编译能力让部署变得极其简单:

# 编译为各平台可执行文件
bun build --compile --target=linux-x64 ./src/index.ts
bun build --compile --target=windows-x64 ./src/index.ts
bun build --compile --target=darwin-x64 ./src/index.ts

总结:开发体验的质变

从 Node.js 到 Bun 的迁移不仅仅是工具的替换,而是开发哲学的升级:

  • 从复杂到简单:多个依赖包 → 1 个运行时
  • 从慢到快:构建时间减少 80%
  • 从配置到零配置:告别繁琐的工具链配置
  • 从调试困难到实时反馈:热重载让开发如丝般顺滑

在 MCP Server 开发的新时代,Bun 不仅仅是一个更快的 Node.js 替代品,它重新定义了全栈 JavaScript 开发的可能性。

立即开始你的 Bun + MCP 之旅,体验 3 倍效率提升的开发快感!