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

Laravel博客项目app.js报错:Uncaught ReferenceError: require未定义

解决Laravel Echo中require is not defined的报错

报错原因是浏览器环境不支持Node.js专属的CommonJS语法require(),Laravel当前默认使用Vite作为构建工具,只支持ES模块的import/export语法,所以得把代码里的require替换成ES模块的导入方式。

修改后的完整代码如下:

import './bootstrap';
import Echo from "laravel-echo";
import { io } from 'socket.io-client';

window.io = io;
window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001',
});

核心改动就是把window.io = require('socket.io-client');拆成两步:

  • 用ES模块语法导入socket.io-client的io对象
  • 再把io挂载到window对象上,保证Echo能正常调用

这样修改后,重新运行构建命令(比如npm run dev或者npm run build),浏览器就能正确识别模块导入语法,不会再出现require is not defined的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:30:55