将video.js库与Webpack的ProvidePlugin一起使用

时间:2017-09-15 19:26:06

标签: javascript webpack video.js webpack-2

我正在尝试在使用video.js库的应用程序中将Webpack从版本1升级到版本3,并且我想将videojs作为全局变量公开给我的脚本。

在我的webpack.config.js文件中,在我的plugins部分,我有这个:

plugins: [
  new webpack.ProvidePlugin({
    videojs: 'video.js'
  })
]

现在,作为一个例子,如果我想使用registerPlugin函数,我必须做这样的事情(因为videojs.registerPluginundefined):

videojs.default.registerPlugin(...);

我不明白为什么我需要在这里加入default

我尝试使用数组语法:

plugins: [
  new webpack.ProvidePlugin({
    videojs: ['video.js', 'videojs']
  })
]

但现在我的videojs全局变量为undefined

在当前的应用程序中,我有ProvidePlugin的第一个语法,videojs变量全局可用,但我不明白Webpack版本3有什么不同。我在这里缺少什么?

感谢任何帮助, 谢谢

1 个答案:

答案 0 :(得分:1)

所以,我发现了如何解决这个问题。我得到的线索来自于我需要通过registerPlugin属性访问default这一事实。所以,在webpack.config.js中,我可以准确地提供:

plugins: [
  new webpack.ProvidePlugin({
    videojs: ['video.js', 'default']
  })
]

现在,我可以直接访问videojs.registerPlugin函数:)