Bun项目快速入门指南:构建你的第一个HTTP服务器

Bun项目快速入门指南:构建你的第一个HTTP服务器

bun 极其快速的JavaScript运行时环境、打包工具、测试运行器和包管理器——集于一身。 bun 项目地址: https://gitcode.com/gh_mirrors/bu/bun

前言

Bun是一个新兴的JavaScript运行时环境,它以其出色的性能和现代化的特性在开发者社区中迅速获得了关注。本文将带你快速上手Bun,通过构建一个简单的HTTP服务器来体验Bun的核心功能。

环境准备

首先,我们需要创建一个新的项目目录并初始化Bun项目:

mkdir bun-quickstart
cd bun-quickstart
bun init

执行bun init命令会启动一个交互式项目初始化向导。对于本教程,你可以直接按回车键接受所有默认选项。这个命令会自动生成以下文件:

  • package.json:项目配置文件
  • index.ts:项目入口文件(TypeScript)
  • .gitignore:Git忽略文件配置
  • tsconfig.json:TypeScript配置文件
  • README.md:项目说明文件

创建HTTP服务器

打开生成的index.ts文件,我们将使用Bun内置的HTTP服务器API来创建一个简单的Web服务器:

const server = Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Bun!");
  },
});

console.log(`Listening on http://localhost:${server.port} ...`);

这段代码创建了一个监听3000端口的HTTP服务器,对所有请求都会返回"Bun!"文本响应。

解决TypeScript类型问题

如果你在现有项目中集成Bun,可能会遇到Bun全局变量的类型错误。解决方法如下:

  1. 安装Bun的类型定义:
bun add -d @types/bun
  1. tsconfig.json中添加以下配置:
{
  "compilerOptions": {
    "lib": ["ESNext"],
    "target": "ESNext",
    "module": "Preserve",
    "moduleDetection": "force",
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "verbatimModuleSyntax": true,
    "noEmit": true
  }
}

运行项目

执行以下命令启动服务器:

bun index.ts

访问http://localhost:3000,你应该能看到"Bun!"的文本响应。

使用package.json脚本

Bun支持通过package.json中的脚本运行项目。添加以下配置:

{
  "scripts": {
    "start": "bun run index.ts"
  }
}

然后通过以下命令运行:

bun run start

Bun的脚本执行速度非常快,比传统的npm快约28倍(6ms vs 170ms的启动开销)。

扩展功能:添加ASCII艺术效果

为了让我们的服务器更有趣,我们可以添加figlet包来生成ASCII艺术字:

  1. 安装依赖:
bun add figlet
bun add -d @types/figlet  # TypeScript用户需要
  1. 修改服务器代码:
import figlet from "figlet";

const server = Bun.serve({
  port: 3000,
  fetch(req) {
    const body = figlet.textSync("Bun!");
    return new Response(body);
  },
});

重启服务器后刷新页面,你将看到漂亮的ASCII艺术字:

  ____              _
 | __ ) _   _ _ __ | |
 |  _ \| | | | '_ \| |
 | |_) | |_| | | | |_|
 |____/ \__,_|_| |_(_)

总结

通过本教程,你已经学会了:

  1. 如何初始化一个Bun项目
  2. 使用Bun.serve创建HTTP服务器
  3. 处理TypeScript类型问题
  4. 通过package.json脚本运行项目
  5. 安装和使用第三方包

Bun以其出色的性能和简洁的API设计,为JavaScript/TypeScript开发者提供了全新的开发体验。你可以继续探索Bun的更多特性,如内置的测试框架、打包工具等,来构建更复杂的应用。

bun 极其快速的JavaScript运行时环境、打包工具、测试运行器和包管理器——集于一身。 bun 项目地址: https://gitcode.com/gh_mirrors/bu/bun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪俊炼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值