将 video.js 库与 Webpack 的 ProvidePlugin 一起使用
Using video.js library with Webpack's ProvidePlugin
我正在尝试在使用 video.js 库的应用程序中将 Webpack 从版本 1 升级到版本 3,并且我想将 videojs
作为全局变量公开给我的脚本。
在我的 webpack.config.js
文件中,在我的 plugins
部分,我有这个:
plugins: [
new webpack.ProvidePlugin({
videojs: 'video.js'
})
]
现在,举个例子,如果我想使用registerPlugin
函数,我必须做这样的事情(因为videojs.registerPlugin
是undefined
):
videojs.default.registerPlugin(...);
我不明白为什么我需要在这里包括 default
!
我尝试使用数组语法:
plugins: [
new webpack.ProvidePlugin({
videojs: ['video.js', 'videojs']
})
]
但现在我的 videojs
全局变量是 undefined
。
在当前的应用中,我有第一个语法ProvidePlugin
,并且videojs
变量是全局可用的,但我不明白Webpack版本3有什么不同。我是什么这里不见了?
感谢任何帮助,
谢谢
所以,我找到了解决问题的方法。我得到的线索是我需要通过 default
属性 访问 registerPlugin
。因此,在 webpack.config.js
中,我可以准确地提供:
plugins: [
new webpack.ProvidePlugin({
videojs: ['video.js', 'default']
})
]
现在,我可以直接访问 videojs.registerPlugin
函数:)
我正在尝试在使用 video.js 库的应用程序中将 Webpack 从版本 1 升级到版本 3,并且我想将 videojs
作为全局变量公开给我的脚本。
在我的 webpack.config.js
文件中,在我的 plugins
部分,我有这个:
plugins: [
new webpack.ProvidePlugin({
videojs: 'video.js'
})
]
现在,举个例子,如果我想使用registerPlugin
函数,我必须做这样的事情(因为videojs.registerPlugin
是undefined
):
videojs.default.registerPlugin(...);
我不明白为什么我需要在这里包括 default
!
我尝试使用数组语法:
plugins: [
new webpack.ProvidePlugin({
videojs: ['video.js', 'videojs']
})
]
但现在我的 videojs
全局变量是 undefined
。
在当前的应用中,我有第一个语法ProvidePlugin
,并且videojs
变量是全局可用的,但我不明白Webpack版本3有什么不同。我是什么这里不见了?
感谢任何帮助, 谢谢
所以,我找到了解决问题的方法。我得到的线索是我需要通过 default
属性 访问 registerPlugin
。因此,在 webpack.config.js
中,我可以准确地提供:
plugins: [
new webpack.ProvidePlugin({
videojs: ['video.js', 'default']
})
]
现在,我可以直接访问 videojs.registerPlugin
函数:)