【发布时间】:2020-10-18 11:47:09
【问题描述】:
我有一个根实例,其中包含多个CustomVideo-组件(在一堆其他组件中)。 CustomVideo-component 实现了VideoJS,但并不是所有页面都有CustomVideo-component,所以我不想全局导入VideoJS。以下是页面上的组件示例:
App.js
|
|-- CustomVideo
|-- FooComponent
|-- CustomVideo
|-- BarComponent
|-- CustomVideo
在 CustomVideo 的顶部,我导入 VideoJS,如下所示:
import videojs from 'video.js';
import abLoopPlugin from 'videojs-abloop'
export default {
name: "FeaturedVideoPlayer",
props: {
videoUrl: String
}
mounted() {
let videoOptions = {
sources: [
{
src: this.videoUrl,
type: "video/mp4"
}
],
plugins: {
abLoopPlugin: {
'enabled': true
}
}
};
this.player = videojs(this.$refs.featuredVideoPlayer, videoOptions, function onPlayerReady() {});
}
但如果有多个CustomVideo,那么我会收到控制台警告:
VIDEOJS:警告:名为“abLoopPlugin”的插件已经存在。您可能希望避免重新注册插件!
我尝试研究条件导入,但似乎不是这样做的方法。
即使我尝试将其导入app.js,即使我宁愿将其导入CustomVideo,也会收到另一个控制台错误:
尝试
import abLoopPlugin from 'videojs-abloop'
Vue.use( abLoopPlugin );
然后我得到错误:
未捕获的类型错误:无法读取未定义的属性“registerPlugin”
如何确保插件只注册一次?
【问题讨论】:
-
查看npm: videojs-abloop中的说明,该插件是一个通用的javascript库,它不是一个有效的Vue插件(How to write one plugin。尝试在
app.js中使用以下代码。示例:@ 987654335@Refer to Github: Videojs-abloop
标签: javascript vue.js vuejs2 video.js