2016-07-09 31 views
0

我有這樣的事情在我的WebPack配置:覆蓋的方法的全球模塊上的WebPack

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

這使得三全局可用(或至少無論其使用?)

我想例如在入口點覆蓋該方法:

THREE.Something = mySomething; 

我沒有成功,這是如何完成的?

另外我試過類似的東西。

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

但是,這也沒有工作,我只在它作出要求調用的範圍內它。儘管我能夠重寫該方法,但無法使其成爲全局的。

回答

2

ProvidePlugin只是全局替換定義的模塊實例提供的字符串。

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

上述插件現在取代的$所有實例中使用jQuery的實例代碼。 而在第二種情況下,它用時刻的實例代替$.moment

你必須明白,ProvidePlugin只是將模塊重命名爲你提供的字符串,我想這是一種重寫。

+0

我嘗試了類似''THREE':'。/ myCustomTHREE.js''但沒有奏效。我不清楚'jquery'或'moment'在這裏指的是/ node_modules中的路徑,還是其他的? 另外,我試着揭露加載器,但也沒有工作,我只得到了庫我在哪裏做'需要(揭露?...)' – pailhead

+0

這是相當於使每個''$'到''require('jquery')?' – pailhead

+0

正是!它會將'THREE.Something'作爲你想包含在其中的任何模塊的佔位符。 –