[英]Can't Import 'Echo' from Module : Uncaught ReferenceError: Echo is not defined
我正在测试laravel / redis / socket.io消息传递功能。 在初始设置过程中,我注意到echo.js(无论是NPM的版本还是GIT的“编译”到模块)都会导致错误。 “未捕获的ReferenceError:未定义回声”
我很沮丧,因为从技术上讲应该可行,有帮助吗?
1)我已经使用了开箱即用的echo.js 2)我已经从GIT laravel-echo TypeScript存储库中构建了一个js包3)我检查了脚本是否正在加载
window.Echo.channel('everywhere')
.listen('AnnouncementEvent', (e) => {
console.log(e);
});
我想找出应该解决的问题,让echo.js开始在测试中工作的解决方案缺少什么
您在这里缺少一些拼图碎片...
安装predis composer require predis/predis
安装一个像这样的socket.io服务器, https://github.com/tlaverdure/laravel-echo-server
安装socket.io客户端库npm install --save socket.io-client
在您的boostrap.js文件中实例化Echo:
import Echo from "laravel-echo"
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
我已经解决了我的问题...我不确定它是否正确,但可以正常工作。
使用laravel echo
发行版,可以得到三个不同的echo*.js
文件:
echo.js
即使使用type='module'
设置导入的ES5-ES6
模块在浏览器中也不起作用
echo.iife.js
库的浏览器兼容版本
echo.common.js
一个nodejs
commonjs模块
我发现我必须包含echo.iife.js
才能使此Javascript Echo
类在浏览器中正确注册并公开给脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.