2017-02-20 32 views
0

後加入反應,光滑的滑塊來我的WebPack的項目,我的柴開始測試失敗,隨着柴測試:添加反應-光滑拋出錯誤 - matchMedia不存在

C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226 
      throw new Error('matchMedia not present, legacy browsers require a polyfill'); 
      ^

Error: matchMedia not present, legacy browsers require a polyfill 
    at Object.MediaQueryDispatch (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:226:19) 
    at C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:291:9 
    at i (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:11:20) 
    at Object.<anonymous> (C:\project\proj\js\node_modules\enquire.js\dist\enquire.js:21:2) 

這個問題唯一的解決方法是滑塊組件的作者推薦here是爲了開玩笑。我在我的環境中嘗試過,但沒有奏效。

+0

我最終把這個反應光滑的滑塊投入垃圾並創建我自己的滑塊。如果僅僅因爲與大多數npm軟件包不同,那麼反應光滑的滑塊是沒有用的,它設法使自己與一些神祕的依賴糾纏在一起。完全沒用,除非你打算用笑話來測試。 – 000

回答

0

解決方案一般應根據你的測試運行,你必須嘲笑window.matchMedia

window.matchMedia =() => ({ 
    matches : false, 
    addListener :() =>{}, 
    removeListener:() =>{}, 
}); 

window.matchMedia = function(){ 
    matches : false, 
    addListener : function() {}, 
    removeListener: function() {}, 
}; 

如果你有類似窗口沒有被定義您可能會嘗試將其附加到全球對象,供測試跑步者使用。

希望這會有所幫助,祝你好運

相關問題