Create-React-App एप्लिकेशन में index.html और index.js के बीच कनेक्शन कहाँ है?


86

मैं क्रिएट रिएक्ट ऐप के साथ खेलना शुरू कर रहा हूं, लेकिन मैं समझ नहीं पा रहा हूं कि index.jsअंदर कैसे लोड होता है index.html। यह HTML कोड है:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
    <!--
      Notice the use of %PUBLIC_URL% in the tag above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>React App</title>
  </head>
  <body>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start`.
      To create a production bundle, use `npm run build`.
    -->
  </body>
</html>

लेकिन मैं कहीं भी आयात नहीं देख सकता index.js। कनेक्शन कहां है? मैं क्या खो रहा हूँ?


आप अपनी सामग्री की सेवा कैसे करते हैं?
निकल्स पौए-विंगर

मैंने कुछ भी डिफ़ॉल्ट नहीं बदला है, मैं बस यही करता हूं: create-react-app my-appऔर मैं वेबस्टॉर्म का उपयोग करके परियोजना को खोलता हूं, फिर मैं npm शुरू करता हूं, लेकिन मेरा सवाल यह है कि index.html को कैसे पता चलेगा कि index.js को लोड करना है? कहाँ लिखा है
पिएरो

6
webpack.github.io/docs/webpack-dev-server.html वेबपैक -देव-सर्वर विकास में आपके लिए इसे संभालता है।
निकल्स पौय-विंगर

@NicklasWinger मुझे तंत्र को समझने के लिए कॉन्फ़िगरेशन फ़ाइल कहां मिल सकती है?
पियरो

4
आप npm run ejectकॉन्फ़िगर को मैन्युअल रूप से नियंत्रित करने के लिए चला सकते हैं । मैं पूरी तरह से समझने के लिए स्क्रैच से अधिक बुनियादी सेटअप करने की सलाह देता हूं कि क्या चल रहा है :)
निकल्स पोय-विंगर

जवाबों:


117

हुड के तहत, बनाएँ रिएक्ट ऐप एचटीएमएल-वेबपैक-प्लगइन के साथ वेबपैक का उपयोग करता है ।

हमारा कॉन्फ़िगरेशन निर्दिष्ट करता है कि वेबपैक src/index.jsएक "प्रवेश बिंदु" के रूप में उपयोग करता है । तो यह पहला मॉड्यूल है जो इसे पढ़ता है, और यह एक बंडल में उन्हें संकलित करने के लिए अन्य मॉड्यूल से इसका अनुसरण करता है।

जब वेबपैक संपत्तियों को संकलित करता है, तो यह एकल (या कई यदि आप कोड विभाजन का उपयोग करते हैं) बंडल का उत्पादन करता है। यह उनके अंतिम रास्तों को सभी प्लगइन्स के लिए उपलब्ध कराता है। हम HTML में स्क्रिप्ट को इंजेक्ट करने के लिए इस तरह के एक प्लगइन का उपयोग कर रहे हैं।

हमने HTML फ़ाइल जेनरेट करने के लिए html-webpack-plugin को सक्षम किया है । हमारे कॉन्फ़िगरेशन में, हमने निर्दिष्ट किया कि इसे public/index.htmlटेम्पलेट के रूप में पढ़ा जाना चाहिए । हमने inject विकल्प भी निर्धारित कर दिए हैं true। उस विकल्प के साथ, वेबपैक द्वारा प्रदान किए गए पथ के साथ अंतिम HTML पृष्ठ में html-webpack-pluginजोड़ता है <script>। यह अंतिम पृष्ठ वह है जिसे आप build/index.htmlचलाने के बाद प्राप्त करते हैं npm run build, और एक जिसे /आप चलाते समय से परोसा जाता है npm start

उम्मीद है की यह मदद करेगा! क्रिएट रिएक्ट ऐप की ख़ूबसूरती इसके बारे में सोचने की ज़रूरत नहीं है।


एक और सवाल, आप सामान्य रूप से प्रतिक्रिया या जेएस के लिए किस आईडीई का उपयोग करते हैं? मैंने एटम और वेबस्टॉर्म के बीच चुनाव लड़ा है, आपको क्या लगता है?
पियरो

1
मैं वेबस्टॉर्म का उपयोग कर रहा हूं और अब तक मैं वास्तव में इससे खुश हूं।
लैंसलॉट

2
आप विभिन्न HTML पृष्ठों को लोड करने के लिए कई मार्ग कैसे निर्धारित करते हैं?
क्वांटम्पोटेटो

5
दरअसल @ डैन अब्रामोव एक जीनियस हैं: डी लेकिन मैं उनसे सहमत नहीं हूं जब उन्होंने कहा "आपको वास्तव में इसके बारे में सोचने की ज़रूरत नहीं है" क्योंकि हर किसी को नीचे से चीजों को समझना चाहिए।
सीफ एडडिन स्लिमिन

उम्मीद है कि यह यहाँ के अलावा कहीं और प्रलेखित है? सीआरए प्रलेखन में? हमें कार्यान्वयन को जानने की आवश्यकता नहीं है, लेकिन हमें इंडेक्स.जेएस से शुरू होने वाली चीजों को जानने की आवश्यकता है और यह कैसे सार्वजनिक / इंडेक्स। सभी के लिए धन्यवाद!
एशले ऐटकेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.