要在laravel 5.3中接收广播通知,我需要在刀片模板中包含laravel echo和pusher js文件。
我知道通过npm包管理器是可能的,正如官方laravel文档中所解释的那样:
npm install --save laravel-echo pusher-js
然后在resouces/assets/js/app.js
文件中导入,如下所示:
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'your-pusher-key-here'
});
但我有一个简单的js文件,我所有的脚本都在里面,我没有在我的项目中使用npm,所有的javascript文件都是.js.
我去了laravel-echo-github页面,但我没有找到任何可以在我的页面中使用的js格式的文件。
除了npm,还有其他方法可以包括laravel echo吗?
更新:
我发现上面的代码是基于Typescript的。我不熟悉Typescript。只有我知道它可以编译成纯javascript文件。我正在寻找laravel-echo作为一个js文件,我可以将其包含在我的页面中,并使用包含的函数和方法。它有错吗?
我不知道这是否真的可能,但我和你有同样的问题。我正在把我的.js文件写入公用文件夹。当我尝试添加echo时,一切都出错了。所以,这是我的解决方案,但您仍然需要使用npm。
- 我获取了.js文件并将其移动到
resources'assets'js
- 打开
resources'assets'js'app.js
并添加require(./filename.js);
- 运行
npm install
- 运行
npm run dev
- 将指向新
app.js
文件的链接更改为我的布局
通过这种方式,我设法在代码中保留了一个js文件,并使用了laravel-echo。
也许还有另一种解决方案,但我没有尝试
- 启动一个新的laravel项目
- 运行
npm install
- 按以下方式修改
webpack.mix.js
:
mix.js('resources/assets/js/app.js', 'public/js').extract(['echo']);
- 将
public/js/vendor.js
文件复制到实际项目中
理论上,这就是所有脚本echo需要发挥作用的地方。在这一点上,我认为你需要修改/删除一些行,使其在没有webpack初始化的情况下工作。