将 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.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 函数:)