2016-12-15 29 views
0

我一直在挖這個約一個小時,但無法弄清楚是什麼導致了這個問題。我正在使用webpack,瀏覽器同步,並與react-redux作出反應。這是從控制檯的錯誤:_crypto沒有定義

Uncaught ReferenceError: _crypto is not defined 
    at eval (eval at <anonymous> (bundle.js:881), <anonymous>:5:11) 
    at Object.eval (eval at <anonymous> (bundle.js:881), <anonymous>:20:3) 
    at eval (eval at <anonymous> (bundle.js:881), <anonymous>:21:30) 
    at Object.<anonymous> (bundle.js:881) 
    at __webpack_require__ (bundle.js:20) 
    at Object.eval (eval at <anonymous> (bundle.js:875), <anonymous>:3:11) 
    at eval (eval at <anonymous> (bundle.js:875), <anonymous>:46:30) 
    at Object.<anonymous> (bundle.js:875) 
    at __webpack_require__ (bundle.js:20) 
    at Object.eval (eval at <anonymous> (bundle.js:833), <anonymous>:4:14) 

回答

1

我剛剛也遇到了這一點。對我來說,解決辦法是升級加密browserify依賴性:

npm install [email protected] 

編輯1:至於原因,我還是不太懂,這只是暫時解決了問題。一旦我重新啓動webpack,它就再次停止工作。

編輯2:這隻發生在我的項目,這是相當複雜的一個,所以這是很難牽制的差異,兩者之間到底是什麼,但作爲一個臨時的解決辦法,你可以聲明變量:

window._crypto = null; 

這並不美觀,但希望這會是暫時的。

+0

謝謝。我一直在進入crypto-browserify並在rng.js的第三行的開頭添加'var'。我在crypto-browserify github上打開了一個關於這個問題,希望它很快就會解決。 –

0

這是一個超級過時的crypto browserify版本,rng.js已經消失,至少在一年前發佈的3.9.8版本中,有些需要過時的版本。

0

我有同樣的問題,並找到原因。

當您使用webpack 1.x時,[email protected][email protected](可能更早)將同時安裝。

所以,如果你只是直接require('crypto'),webpack將使用@3.3.0,它有rng.js,而不是你自己安裝的最新版本。

image

我嘗試的解決方案只是npm install node-libs-browser --save和NPM會的WebPack更新,並@ 3.11.0會被發現。