2017-07-20 11 views
8

मैं प्रतिक्रिया वेबसाइट बनाने के लिए create-react-app पैकेज का उपयोग कर रहा हूं। मैं आयात करने घटकों, संसाधन, redux आदि जैसे के लिए मेरे पूरे एप्लिकेशन संबंधित पथ उपयोग कर रहा था, import action from '../../../redux/actionरिलेशनशिप पथ आयात (/../../../redux/action/action1) का उपयोग करने से बचने के लिए कैसे करें-प्रतिक्रिया-एप

मैं module-alis NPM पैकेज का उपयोग की कोशिश की है, लेकिन कोई सफलता के साथ। क्या कोई प्लगइन है जिसे मैं फ़ोल्डर नाम या उपनाम के आधार पर आयात करने के लिए उपयोग कर सकता हूं?

उदा।, import action from '@redux/action' या import action from '@resource/css/style.css'

उत्तर

20

परियोजना जड़ में एक फ़ाइल बुलाया .env बनाएँ और वहाँ लिखें:

NODE_PATH=src 

फिर विकास सर्वर को पुनरारंभ करें। आप सापेक्ष पथ के बिना src के अंदर कुछ भी आयात करने में सक्षम होना चाहिए।

नोट मैं आपके फ़ोल्डर src/redux पर कॉल करने की अनुशंसा नहीं करता क्योंकि अब यह भ्रमित है कि redux आयात आपके ऐप या लाइब्रेरी को संदर्भित करता है या नहीं। इसके बजाय आप अपने फ़ोल्डर src/app पर कॉल कर सकते हैं और app/... से चीजें आयात कर सकते हैं।

हम जानबूझकर @redux जैसे कस्टम वाक्यविन्यास का समर्थन नहीं करते हैं क्योंकि यह नोड रिज़ॉल्यूशन एल्गोरिदम के साथ संगत नहीं है।

+0

क्या मैं इसे प्रतिक्रिया-निर्माण-ऐप में कर सकता हूं? मैंने कोशिश की, लेकिन ऐसा लगता है कि काम नहीं कर रहा है, हालांकि यहां से लड़का https://medium.com/@ktruong008/absolute-imports-with-create-react-app-4338fbca7e3d उसी – yerassyl

+0

का सुझाव देता है हाँ यह मेरे लिए निर्माण- प्रतिक्रिया-एप – Mehari

+0

@ मेहरी बनाएं-प्रतिक्रिया-ऐप और प्रतिक्रिया-स्क्रिप्ट का आपका संस्करण क्या है? – qwang

0

हम webpack config में webpack 2 संकल्प संपत्ति का उपयोग कर सकते हैं।

नमूना webpack config संकल्प का उपयोग कर:

यहाँ घटक और utils स्वतंत्र घटकों प्रतिक्रिया वाले फ़ोल्डर हैं।

resolve: { 
     modules: ['src/scripts', 'node_modules'], 
     extensions: ['.jsx', '.js'], 
     unsafeCache: true, 
     alias: { 
      components: path.resolve(__dirname, 'src', 'scripts', 'components'), 
      utils: path.resolve(__dirname, 'src', 'scripts', 'utils'), 
     } 
    } 

उसके बाद हम फाइलों में सीधे आयात कर सकते हैं:

import UiUtils from 'utils/UiUtils'; 
import TabContent from 'components/TabContent'; 

Webpack 2 Resolve Reference

+0

मैं create-react-app पैकेज का उपयोग करता हूं जहां मैं वेबपैक कॉन्फ़िगरेशन को संशोधित नहीं कर सकता। क्या ऐसा करने का कोई और तरीका है? – Prem

+0

webpack.config.js नीचे पथ में उपलब्ध है: '/ create-react-app/blob/master/packages/प्रतिक्रिया-स्क्रिप्ट/config/webpack.config.dev.js' '/create-react- ऐप/ब्लॉब/मास्टर/पैकेज/प्रतिक्रिया-स्क्रिप्ट/कॉन्फ़िगर/webpack.config.prod.js' – santosh

+2

नहीं, यह इन कॉन्फ़िगरेशन को संशोधित करने के लिए समर्थित नहीं है। आप बाहर निकल सकते हैं लेकिन फिर आप सीआरए के कई लाभ खो देते हैं। ऐसा करने के समर्थित तरीके के लिए कृपया मेरा उत्तर देखें। –

0

मुझे लगता है कि समस्या को हल करने के लिए अपनी परियोजना के लिए babel-plugin-module-resolver उपयोग कर रहा हूँ। बेबेल-प्लगइन-मॉड्यूल-रिज़ॉल्वर भी मॉड्यूल-एलिस जैसा ही है। तो मुझे लगता है कि आपको मॉड्यूल-एलिस समस्या का उपयोग करके हल करना चाहिए।

क्योंकि आपने हमें नहीं बताया कि मॉड्यूल-एलिस का उपयोग क्यों विफल रहा? तो मैं आपको यह दिखाने के लिए नहीं दिखा सकता कि इसे कैसे ठीक किया जाए।

जब आप कारण नहीं जानते हैं तो अपना समाधान न छोड़ें!

+0

यह रीक्ट ऐप बनाएं के साथ काम नहीं करेगा। यह कस्टम बेबेल प्लगइन्स का समर्थन नहीं करता है। –

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