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

Heroku部署Laravel+Vite遇报错:vite未找到及文件监视器超限求助

解决方案:Heroku上Laravel + Vite运行问题

一、解决vite: not found错误

核心原因:Node版本过低

Laravel 9搭配的Vite 3.x要求Node.js版本至少为14.18.0或16.0.0,你当前使用的Node 8.15完全不兼容,这是Vite无法被找到的主要原因。

修复步骤:

  1. 在项目根目录创建.nvmrc文件,指定兼容的Node版本:
echo "16" > .nvmrc
  1. 提交文件并重新部署到Heroku:
git add .nvmrc
git commit -m "Specify compatible Node.js version"
git push heroku main

Heroku会自动识别.nvmrc并安装对应版本的Node,确保Vite依赖能正常安装。

二、解决ENOSPC文件监视器超限错误

核心问题:错误使用dev模式

npm run dev是本地开发专用命令,会启动热重载服务并监听大量文件,而Heroku的dyno有严格的文件监视器数量限制,且dev模式的服务仅绑定localhost,外部无法访问。

正确生产部署流程:

  1. 构建生产静态资源:
    Laravel默认已配置build命令,部署时Heroku会自动执行(若未自动执行,可确保package.json的scripts包含以下内容):

    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "preview": "vite preview"
    }
    

    构建后的静态资源会生成在public/build目录,Laravel会自动加载这些资源。

  2. 无需运行dev服务:
    部署完成后,直接访问你的Heroku域名即可,Heroku的PHP buildpack会自动运行Laravel的web服务,无需手动启动Vite dev server。

临时调试方案(不推荐):

如果必须在Heroku上临时运行dev模式,可修改vite.config.js减少监听范围,避免触发文件监视器限制:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
    server: {
        watch: {
            ignored: ['**/.heroku/**', '**/node_modules/**', '**/vendor/**']
        }
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:40:26