簡體   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