繁体   English   中英

无法从模块导入“ Echo”:未捕获的ReferenceError:未定义Echo

[英]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'
});

https://laravel.com/docs/5.7/broadcasting

我已经解决了我的问题...我不确定它是否正确,但可以正常工作。

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM