我正在尝试在使用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有什么不同。我在这里缺少什么?
感谢任何帮助, 谢谢
答案 0 :(得分:1)
所以,我发现了如何解决这个问题。我得到的线索来自于我需要通过registerPlugin
属性访问default
这一事实。所以,在webpack.config.js
中,我可以准确地提供:
plugins: [
new webpack.ProvidePlugin({
videojs: ['video.js', 'default']
})
]
现在,我可以直接访问videojs.registerPlugin
函数:)