gpt4 book ai didi

javascript - 引用错误: Echo is not defined

转载 作者:行者123 更新时间:2023-12-02 23:02:35 27 4
gpt4 key购买 nike

我正在使用 laravel echo 和 Pusher js 在我的应用程序中构建实时功能。我已完成 doc 所要求的所有步骤。我已经成功设置了推送器配置,并且工作正常:当我的事件被触发时,我会在我的推送器帐户的调试控制台中收到通知。

我的问题与前端有关。正如 docs 所说我已在 resources/js/bootstrap.js 的底部添加了必要的代码部分文件。我实际上取消了它的注释并添加了正确的 id。

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
broadcaster: 'pusher',
key:my-pusher-key-here,
cluster: eu,
forceTLS: true
});

问题是,虽然我已经插入了这些

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 
<script src="js/echo.js"></script>
<script src="js/app.js"></script>
<script src="https://js.pusher.com/4.1/pusher.min.js"></script>
<script>
var channel = Echo.channel('my-channel');
channel.listen('my-event', function(data) {
alert(JSON.stringify(data));
});
</script>

在我的 Blade View 中,我在浏览器控制台中收到此错误:ReferenceError: Echo is not defined 。我猜这与未找到 echo 库有关,但我不明白为什么。对于<script src="js/echo.js"></script>行,我复制了 npm install --save laravel-echo pusher-js 之后得到的 echo.js 文件命令运行。

我经历了很多建议,例如 gulp我猜想自动编译 Js 文件中的更改,但什么也没有......对于 gulp在我的 CLI 中输入命令,我得到 No gulpfile file found错误。我还尝试直接将代码的第一部分复制到 app.js 中文件,但没有区别,我遇到了相同的错误。

正如我所说..我想这肯定与未找到 Echo 库有关,但为什么会这样呢?我们将非常感谢您的帮助

package.json文件

    "private": true,
"scripts": {
"build": "webpack -p",
"watch": "npm run development -- --watch",
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.19",
"bootstrap": "^4.1.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^4.0.7",
"lodash": "^4.17.13",
"popper.js": "^1.12",
"resolve-url-loader": "^2.3.1",
"sass": "^1.15.2",
"sass-loader": "^7.1.0",
"vue": "^2.5.17",
"vue-template-compiler": "^2.6.10",
"webpack": "^4.39.3",
"webpack-cli": "^3.3.7"
},
"dependencies": {
"gulp": "^4.0.2",
"laravel-echo": "^1.5.4",
"pusher-js": "^5.0.0"
}
}

最佳答案

从脚本标记中删除延迟。这将导致 app.js 脚本被推迟,其他脚本将在此脚本之前先运行

<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>

关于javascript - 引用错误: Echo is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com