如何在Webpack中使用webrtc-adapter(adapter.js)shim?

时间:2016-05-09 09:25:15

标签: webpack

我有一个使用Webpack捆绑的commonjs浏览器应用程序(typescript)。它使用webrtc所以我想使用webrtc-adapter package from npm。它是adapter.js的包,它使得在firefox和amp;之间使用webrtc。铬更容易。

在我的模块中,我希望能够访问修改后的导航器项。例如,我可以简单地致电:

navigator.mediaDevices.getUserMedia

如果我需要包,然后在我的模块中的某处使用变量,我可以让它工作:

var webrtc = require("webrtc-adapter");
// somewhere in module
console.log(webrtc.browserDetails);

但是,我不需要通过webrtc-adapter访问browserDetails或任何公开的项目,我只想在导航器对象上使用shimmed调用。我尝试过使用webpack.ProvidePlugin和externals,但两者仍然要求我在某个地方使用该对象。

有没有办法可以将shimmed导航器加载到每个模块中而无需在模块中的某处使用变量?我知道我可以在配置中使用外部,然后通过单独的脚本标记加载它,但我更喜欢将webpack捆绑在一起。

2 个答案:

答案 0 :(得分:4)

您是否尝试过像这样要求它?

require('webrtc-adapter');

答案 1 :(得分:1)

对于普通的Webpack:

var a = require('webrtc-adapter');

对于TypeScript。如果你还想要一些打字,也可以使用@ types / webrtc的参考标签。

/// <reference types="webrtc" />
import 'webrtc-adapter';