2016-09-22 39 views
1

完全難倒了。我有一個導入助手文件的React App。該助手文件只包含以下現在(和文件被正確加載):Webpack/Crypto-Browserify參考錯誤:分配給未聲明的變量_crypto

var accountSid = '<secret_id>'; 
var authToken = '<secret_token>'; 
var client = require('twilio')(accountSid, authToken); 

我得到這個錯誤:「引用錯誤:分配給未聲明的變量_crypto」

源地圖需要我在這個代碼塊「bundle.js,」通過的WebPack編譯:

/* 262 */ 
/***/ function(module, exports, __webpack_require__) { 

    /* WEBPACK VAR INJECTION */(function(global, Buffer) {'use strict'; 

    (function() { 
     var g = ('undefined' === typeof window ? global : window) || {}; 
     _crypto = g.crypto || g.msCrypto || __webpack_require__(263); 
     module.exports = function (size) { 
     // Modern Browsers 
     if (_crypto.getRandomValues) { 
      var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array 
      /* This will not work in older browsers. 
      * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues 
      */ 

      _crypto.getRandomValues(bytes); 
      return bytes; 
     } else if (_crypto.randomBytes) { 
      return _crypto.randomBytes(size); 
     } else throw new Error('secure random number generation not supported by this browser\n' + 'use chrome, FireFox or Internet Explorer 11'); 
     }; 
    })(); 
    /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(257).Buffer)) 

/***/ }, 

該函數來自於一個所謂的「rng.js」內部「(的WebPack)文件>〜/節點庫瀏覽器/〜 > crypto-browserify' 當我註釋掉twilio實例化方法d,錯誤消失。它直到我開始使用twilio模塊才顯示出來。

任何人之前看到過這個或有一個建議,我該如何解決它?日Thnx。

+1

很可能,['twilio'](https://github.com/twilio/twilio-node)無法在瀏覽器中使用。 – cartant

回答

1

Twilio開發人員在這裏傳播。

看起來您正嘗試在瀏覽器中使用Twilio Node module。這不被支持,也不被推薦。出於以下原因:

如果您在前端列出了您的賬戶憑證,那麼它們可供任何惡意用戶竊取並使用您的Twilio賬戶,將所有資金花費在他們想撥打電話或SMS的人身上。

我們建議您在服務器上對Twilio進行API調用,並在需要製作動態前端時通過Ajax發送請求。

+0

很想看到Twilio或某人推出了關於如何使用第三方API開發React應用的教程。有很多資源可以使用webpack運行React App。但不是讓它在真正可以進行服務器調用的開發環境中運行的次數。建議歡迎! – mepler

+0

有一些關於此的博客帖子,特別是這一篇,這可能有所幫助:https://www.twilio.com/blog/2015/11/reactjs-tutorial-call-monitoring-with-react-express-窩-io.html。我們可能會寫更多,所以請留意博客! – philnash