我试图使用yt-player API:https://www.npmjs.com/package/yt-player显示一个具有Laravel的https://www.npmjs.com/package/yt-player播放器。
这是我的Laravel show.blade.php模板。
@extends('layouts.app')
@section('content')
<html>
<head>
<script>
import * as YTPlayer from 'yt-player';
this.player = YTPlayer;
this.player.load('blL9B_dzhoI');
this.player = new YTPlayer('#player', {
controls : true,
related : false,
info : false,
});
this.player.setVolume(100);
</script>
</head>
<body>
<div class="row">
<div class="col colonne-video"> <div id="player"></div> </div>
<div class="col colonne-interactive"> some text </div>
</div>
</body>
</html>
@endsection
我在Laravel终端没有发现错误,但在Chrome控制台中有一个错误:
Uncaught :无法在模块外使用导入语句
我不明白这个错误,如果这是为什么YouTube播放器甚至没有显示在屏幕上。
发布于 2019-10-20 15:20:10
您不能直接在脚本标记中使用import语句,因为您的浏览器无法访问已安装的npm包。
相反,您需要在resources/js/app.js
中加载包(该包将由Laravel编译)。
将类似的内容添加到app.js
window.YTPlayer = require('yt-player')
然后,编译javascript (yarn dev
),并将编译后的js文件添加到页面({{ mix('js/app.js') }}
)中。
现在,您可以使用脚本标记中的包,如下所示:
var player = new YTPlayer('#player', {
controls : true,
related : false,
info : false,
});
player.load('blL9B_dzhoI')
player.setVolume(100)
https://stackoverflow.com/questions/58477834
复制