将视频.js库与 Webpack 的 ProvidePlugin 结合使用



我正在尝试将WebPack从版本1升级到使用Video.js库的应用程序中的版本3,我想将videojs作为我脚本的全局变量公开。<<<<<<<<<。/p>

在我的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中有什么不同?我在这里缺少什么?

任何帮助都将不胜感激,谢谢

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

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

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

最新更新