2016-04-05 17 views
6

मैं अपने प्रतिक्रिया देशी परियोजना में twilio पैकेज लागू करने पर काम कर रहा हूँ नहीं लगाया जा सका है और जब मैं अपनी फ़ाइल परियोजना अभ्यस्त लोड में यह आवश्यकता होती है और मैं निम्नलिखित त्रुटि दिखाई दे रही:Twilio मूल निवासी प्रतिक्रिया - मॉड्यूल क्रिप्टो

Unable to resolve module crypto from /Users/[myname]/Documents/Projects/React-Native/[app-name]/node_modules/twilio/lib/webhooks.js: Unable to find this module in its module map or any of the node_modules directories under /Users/node_modules/crypto and its parent directories

मैं सीधे crypto पैकेज को स्थापित करने की कोशिश की है और है कि या तो काम करने के लिए प्रतीत नहीं होता।

क्या किसी ने इस समस्या का अनुभव किया है, और इसका समाधान करने का कोई तरीका है?

उत्तर

3

ऐसा लगता है कि प्रतिक्रिया मूल अपनी निर्भरताओं के आधार पर कुछ संकुल स्वीकार नहीं करता है, ट्विलियो इनमें से एक है।

प्रत्यक्ष समाधान नहीं होने पर, मैंने ट्विलियो कॉल करने के लिए एक अलग एक्सप्रेस सर्वर बनाकर और मेरे रिएक्ट नेटिव ऐप के भीतर से उस मार्ग को कॉल करके इस मुद्दे के आसपास एक कार्य बनाया।

2

मेरा सुझाव है कि आपके पास there देखें, बहुत सारे समाधान दिए गए हैं क्योंकि कोई भी सभी के लिए ठीक नहीं लगता है।

मैं सुझाव है कि आप निम्नलिखित (लिंक से इस मुद्दे से लिया गया) की कोशिश:

  1. rm -rf node_modules
  2. rm -fr $TMPDIR/react-*
  3. watchman watch-del-all
  4. npm cache clean && npm install
  5. npm start from ./node_modules/react-native

लेकिन इस मुद्दे को अपनी अभिन्नता में देखें, कई अन्य फिक्स जो उनके लिए काम करते हैं।

+0

इन सुझावों के लिए धन्यवाद! – Onaracs

10

आप प्रतिक्रिया-मूल पर crypto प्राप्त करने के लिए rn-nodeify मॉड्यूल का उपयोग कर सकते हैं।

package.json में अपने devDependencies को rn-nodeify जोड़ें:

"scripts": { 
    … 
    "postinstall": "node_modules/.bin/rn-nodeify --install crypto --hack" 
} 

पता है कि आर एन nodeify अपने package.json को संशोधित करेगा रहें:

"devDependencies": { 
    "rn-nodeify": "^6.0.1" 
} 

एक ही फ़ाइल के scripts अनुभाग के लिए निम्न जोड़ें ।

अधिक जानकारी यहां उपलब्ध: https://www.npmjs.com/package/rn-nodeify

+0

सुनिश्चित करें कि आप इस हैक के स्रोत को भी पढ़ते हैं -> आईआईआरसी यह आरएनजी को काफी असुरक्षित बनाता है, इसलिए आपको इसके साथ ठीक होना होगा। – aegbert

+0

rn-nodeify के क्लीनर विकल्प के लिए, अर्थात् ReactNativify, यह उत्तर देखें: [प्रतिक्रिया-मूल वातावरण में अज्ञात मॉड्यूल "क्रिप्टो" की आवश्यकता है] (https://stackoverflow.com/a/45304528/8295283) –

0

मूल निवासी बंडल प्रतिक्रिया हुड के नीचे कोलाहल उपयोग करता है। इसका अर्थ यह है कि आप babel-plugin-rewrite-require Babel plugin का उपयोग पर require('crypto-browserify') पर फिर से लिखने के लिए कर सकते हैं, यह मानते हुए कि बाद में आपके node_modules में स्थापित है।

जनवरी 2016 तक, आप वैकल्पिक कॉन्फ़िगरेशन को परिभाषित करने के लिए .babelrc फ़ाइल का उपयोग कर सकते हैं, इसलिए यह वास्तव में आसान हो जाता है।

{ 
    "presets": ["react-native"], 
    "plugins": [ 
    ["babel-plugin-rewrite-require", { 
     aliases: { 
     crypto: 'crypto-browserify' 
     } 
    }] 
    ] 
} 

पुनः प्रारंभ packager और है कि यह होना चाहिए: सबसे पहले, निर्भरता स्थापित:

npm install --save crypto-browserify 
npm install --save-dev babel-plugin-rewrite-require 

फिर अपने .babelrc फाइल करने के लिए विन्यास प्लगइन्स जोड़ें।

यह वही दृष्टिकोण है जो ReactNativify उपयोग करता है, सिवाय इसके कि हम कस्टम ट्रांसफार्मर को परिभाषित करने के बजाय .babelrc का उपयोग करते हैं। जब ReactNativify लिखा गया था, तो यह समर्थित नहीं था, इसलिए उन्हें अधिक जटिल समाधान के साथ जाना पड़ा। नोड पॉलीफिल की लगभग पूरी सूची के लिए this file from ReactNativify देखें।

संबंधित मुद्दे