2016-08-03 86 views
2

我正在使用React/Webpack/ES6創建應用程序,並且遇到問題。Webpack worker-loader - 導入不起作用

我正在嘗試使用網絡工作人員進行API調用。我有一個功能強大的線程池來激勵我的網絡工作者,並且沒有任何問題。

的問題是,我使用的WebPack工人裝載機創建我的工人,如果我想導入外部庫是這樣的:

import MyLibrary from './path/to/MyLibrary'; 

我得到了這樣的錯誤:

Uncaught ReferenceError: window is not defined 

我不能讓它工作,但根據documentation,我認爲我做對了。任何想法?

回答

1

那麼,你沒有分享任何可能有問題的代碼MyLibrary。通常,JavaScript錯誤對象包含有關錯誤被引發的行和文件的信息。不過,我會猜測這個明顯的可能性:您在MyLibrary中使用windowwindow全局屬性未在網絡工作者中定義!對於必須與工作人員兼容的代碼,請使用self。它也將在正常的瀏覽器環境下工作 - 因此self優於window

作爲一個方面說明,也不要依賴window工作人員沒有定義 - 一些庫定義它來處理兼容性問題。我也這樣做,有時:

if(typeof window != "object") 
    self.window = self; 

如果您不能或不想編輯庫,這也是可以接受的解決方法。我做了這個和更多的make jQuery work in web workers

+1

謝謝你的迴應。我明白我的問題在於網絡工作者沒有定義窗口。問題是,當我導入例如「請求」模塊時出現此錯誤。那麼,我該如何擺脫這個問題呢? – Yomansk8