Turbopack 为什么无法正确处理我的 HTML 入口文件?

司空希哲 阅读 4

我刚用 Turbopack 启动了一个简单的静态页面项目,但发现它好像不识别我的 HTML 入口文件,页面加载后是空白的,控制台也没报错。我试过把 HTML 放在 src 目录下,也试过根目录,都不行。

这是我的 HTML 文件内容:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Test</title>
</head>
<body>
  <h1>Hello Turbopack!</h1>
  <script type="module" src="./index.js"></script>
</body>
</html>

难道 Turbopack 不支持直接从 HTML 启动?还是我漏了什么配置?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
迷人的文婷
这个问题我之前也踩过坑,直接说结论吧。

Turbopack 目前根本不支持以 HTML 文件作为入口,它不是 Vite,设计思路完全不一样。Turbopack 是面向 Next.js 设计的,入口必须是 JavaScript/TypeScript 文件,它会从 JS 开始分析依赖图谱,HTML 只是最终输出的产物模板。

你现在这样写,Turbopack壓根不知道要从哪里开始编译,index.js 根本没被处理过,自然页面空白也没报错——因为啥都没跑起来。

解决方案有两个思路。

第一个方案,如果你非要用 Turbopack,得换成 Next.js 的项目结构,或者用命令行指定 JS 入口:

npx turbopack --entry index.js --out-dir dist


然后在 JS 里手动操作 DOM,或者配合 HTML 模板插件使用。说实话挺麻烦的,而且 Turbopack 独立使用的文档还很不完善,坑多。

第二个方案,也是我更推荐的,如果你的项目就是简单的静态页面,直接换 Vite 吧。Vite 天生支持 HTML 入口,零配置就能跑:

npm create vite@latest my-app -- --template vanilla
cd my-app
npm install
npm run dev


把你的 HTML 和 JS 扔进去就能用,省得折腾。

Turbopack 现阶段还是更适合在 Next.js 13+ 项目里开箱即用,独立跑纯静态项目属实有点大材小用还不好使。等它成熟点再说吧,毕竟还在 canary 阶段,别拿生产项目当小白鼠。
点赞
2026-03-02 21:28