覆盖webpack中全局模块上的方法

时间:2016-07-09 05:56:48

标签: javascript requirejs webpack

我的webpack配置中有这样的东西:

plugins:[
  new webpack.ProvidePlugin({ THREE: 'three' }),
  ...

这使得THREE在全球范围内可用(或至少在其使用的任何地方?)

我想覆盖此库中的方法,例如在入口点:

THREE.Something = mySomething;

我没有成功,这是怎么做到的?

或者我尝试了类似的东西。

require(expose?THREE!./myCustomThree.js); 

但那也没有用,我只是在我进行要求调用的范围内。我虽然能够覆盖这个方法,但却无法使其全局化。

1 个答案:

答案 0 :(得分:3)

ProvidePlugin只是全局替换随定义模块实例提供的字符串。

new webpack.ProvidePlugin({
        '$': 'jquery',
        '$.each': 'moment'
    })

上面的插件现在用jquery实例替换代码中$的所有实例。 在第二种情况下,它将$.moment替换为时刻的实例。

您必须了解ProvidePlugin只是将模块重命名为您提供的字符串,我想这是一种覆盖。