我的webpack配置中有这样的东西:
plugins:[
new webpack.ProvidePlugin({ THREE: 'three' }),
...
这使得THREE在全球范围内可用(或至少在其使用的任何地方?)
我想覆盖此库中的方法,例如在入口点:
THREE.Something = mySomething;
我没有成功,这是怎么做到的?
或者我尝试了类似的东西。
require(expose?THREE!./myCustomThree.js);
但那也没有用,我只是在我进行要求调用的范围内。我虽然能够覆盖这个方法,但却无法使其全局化。
答案 0 :(得分:3)
ProvidePlugin只是全局替换随定义模块实例提供的字符串。
new webpack.ProvidePlugin({
'$': 'jquery',
'$.each': 'moment'
})
上面的插件现在用jquery实例替换代码中$
的所有实例。
在第二种情况下,它将$.moment
替换为时刻的实例。
您必须了解ProvidePlugin只是将模块重命名为您提供的字符串,我想这是一种覆盖。