用 bun run 无法直接运行 HTML 文件,因其非可执行脚本;正确方式是用 Bun 编写极简 HTTP 服务(如 serve({ fetch }))或使用 esbuild --servedir=. 启动静态服务器。
用
直接打开 HTML 文件行不通
html
文件本身不是可执行脚本,
会报错
—— bun 默认只识别 js/ts 模块,不内置静态文件服务能力。
真正能跑起来的,是用 Bun 写一个极简 HTTP 服务,把当前目录当静态资源根来 serve。核心就两步:写个
,再
。
不是官方命令,别搜这个,Bun 没预置模板
不要试图用
,watch 对纯 HTML 无效
浏览器直接双击打开
协议的 HTML,会因跨域限制让
、
等失效,必须走
用 Bun 写个 3 行静态服务(支持热更新)
新建
,内容如下:
这只能返回固定
,不处理 CSS/JS 路径。要真正支持整个项目(比如
、
),得加路由逻辑:
用
解析路径,避免硬编码
对根路径
返回
,其他路径尝试读取对应文件(如
→
)
加
判断,否则 404 会崩掉进程
注意:Bun 默认不自动设置
,CSS/JS 会被当成
,需手动塞
更稳的选择:
启动
或
Bun 自带
,能一键起 dev server,比手写
更靠谱:
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
然后运行:
这等价于 Python 的
,但支持现代 MIME 类型和缓存头。优势很明显:
不用写任何代码,
就指定当前为根目录
自动处理
、
、
、
的 Content-Type
支持
,视频/大文件拖动没问题
不支持 HMR(热模块替换),但纯 HTML + 静态资源开发完全够用
为什么不用
或
?
这些命令只在有
且定义了
时才有效。Bun 不像 Node.js 生态默认绑定某个 bundler —— 它只是个更快的运行时 + 工具链,没有“开箱即用的 HTML 开发服务器”概念。
容易被忽略的一点:Bun 的
在服务端(
回调里)默认不支持
协议读取,所以
会失败;必须用
或
。
bun runbun run index.htmlerror: cannot find module 'index.html'server.tsbun run server.tsbun create http-serverbun run --watch index.htmlfile://fetchimporthttp://server.tsimport { serve } from "bun";
serve({
port: 3000,
fetch: (req) => new Response(Bun.file("./index.html")),
});index.html/style.css/script.jsnew URL(req.url)/index.html/main.js./main.jsif (!file.exists)Content-Typetext/plainheaders: { "Content-Type": "..."} bun runesbuildviteesbuildservebun add -d esbuildbun run esbuild --servedir=. --port=3000python -m http.server--servedir=..html.js.css.pngAccept-Rangesbun installbun devpackage.json"scripts": { "dev": "..." }fetchservefile://await fetch("file://./data.json")Bun.file()await Bun.file().text()