Webpack:如何驯服非npm兼容的js库

Flm*_*dfj 5 javascript node.js npm webpack

我有js库初始化自己,如下所示:

(function(root) {
   ......
   ......
})(this)
Run Code Online (Sandbox Code Playgroud)

当用webpack构建时,我会得到类似的东西

function(module, exports) {
   (function(root) {

    })(this)
}
Run Code Online (Sandbox Code Playgroud)

"this"不是图书馆所假设的窗口.有没有一种巧妙的方法来驯服这种类型的库来使用webpack?我的最后一种方法是使用postloader或其他东西用hackly替换这个窗口.

Sea*_*kin 5

是的,我们称这些"破碎的模块",因为就像你说它们只是在全局环境中执行一样,有几种不同的方法来填充这些模块.

以下是不同选项的列表(因为每个库的解决方案凸轮不同).我喜欢使用ProvidePlugin或使用别名和外部.