You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+Vite项目部署Heroku报错:无法自动确定入口点

错误含义解析

Could not auto-determine entry point from rollupOptions or html files and there are no explicit optimizeDeps.include patterns. Skipping dependency pre-bundling.

这个错误的核心是Vite启动时无法定位到项目的入口文件(默认是根目录的index.html),也没有在配置中明确指定依赖预打包规则,导致依赖预打包流程跳过,最终服务启动失败。

解决方案

结合你的配置文件,问题主要出在生产环境启动方式的错误配置上,以下是分步修复方案:

1. 修正生产环境启动逻辑(关键)

你的Procfile和package.json的start脚本完全不符合Vite SPA的生产部署要求:

  • 用npm run dev启动开发服务器:这是本地开发用的调试服务,不适合生产环境,且会因为Heroku的环境约束触发入口定位错误。
  • node main.jsx启动命令:Vite构建React SPA后生成的是静态文件,不需要用Node直接运行JSX文件。

方案一:使用serve静态文件服务器(推荐)

  • 安装serve作为生产依赖:
npm install serve --save
  • 修改package.json的scripts:
"scripts": {
  "dev": "vite",
  "build": "vite build",
  "preview": "vite preview",
  "start": "serve dist -p $PORT"
}
  • 修改Procfile:
web: npm start

方案二:使用Vite预览服务器

直接修改Procfile即可,无需额外安装依赖:

web: npm run preview --port $PORT

2. 清理冗余依赖

你的package.json中包含react-scripts(Create React App的核心依赖),这和Vite项目完全冲突,建议删除:

npm uninstall react-scripts

3. 验证项目入口文件

确保项目根目录存在index.html,且文件内正确引入React入口脚本,示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Portfolio Website</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.jsx"></script>
  </body>
</html>

4. 可选:显式配置Vite入口(默认入口失效时用)

如果以上步骤后仍报错,可以在vite.config.js中显式指定入口HTML文件:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  build: {
    rollupOptions: {
      input: {
        main: './index.html'
      }
    }
  }
})

内容的提问来源于stack exchange,提问作者ILLUSORY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:15:40