تقنية

إنشاء تطبيق React بنقاط دخول متعددة


تتيح لك أطر إنشاء تطبيق React إمكانية إنشاء تطبيقات صفحة واحدة بسهولة ولكنها لا تدعم نقاط دخول متعددة. لإعطائك مثالاً، إذا قام موقع ويب بإخراج صفحات رئيسية منفصلة لعملاء الأجهزة المحمولة وسطح المكتب، فمن الممكن أن تتشارك الصفحات بعض مكونات React الشائعة فيما بينها، وبالتالي قد لا يكون من العملي إنشاء تطبيقين React منفصلين تمامًا.

انظر أيضًا: حزمة تطبيق React مع Gulp

لا يدعم CRA نقاط دخول متعددة ولكن هناك طريقتان لحل هذه المشكلة.

الخيار 1 قم بالإخراج من تطبيق إنشاء React باستخدام npm run eject الأمر وتحديث الإدخال في الداخل webpack.config.js ملف ليشمل نقاط دخول متعددة.

الخيار 2 استخدم أداة إنشاء بديلة مثل Vite.js التي تتضمن دعمًا لنقاط دخول متعددة خارج الصندوق.

الخيار 3 استخدم التطبيق المعاد توصيله – فهو يتيح لك إجراء تغييرات وتعديلات صغيرة بسهولة على تكوين Webpack الافتراضي دون إخراج التطبيق.

الخيار 4 يستخدم REACT_APP متغيرات البيئة لتحديد المكون الهدف ثم استخدام عمليات الاستيراد الديناميكية ES5 لتحميل مكون التطبيق المقابل كما هو موضح في هذا المثال.

نقاط دخول متعددة لإنشاء تطبيق React

إذا كنت تنوي استخدام تكوين تطبيق Create React بدون إخراجه، فإليك حل بديل بسيط سيساعدك على تحديد نقاط إدخال متعددة وسيتم تجميع المخرجات في مجلدات منفصلة.

داخل src المجلد، قم بإنشاء مكونين.

// ./src/Desktop.js
import React from 'react';

const Desktop = () => {
  return <h1>For Desktop</h1>;
};

export default Desktop;
// ./src/Mobile.js
import React from 'react';

const Mobile = () => {
  return <h1>For Mobile</h1>;
};

export default Mobile;

ملف الإدخال الافتراضي index.js يبدو مثل هذا:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

بعد ذلك، قم بتحرير ملف package.json الخاص بك وأضف أوامر، واحدة لكل هدف بناء.

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "build:mobile": "cp src/Mobile.js src/App.js && npm run build && mv build build-mobile",
    "build:desktop": "cp src/Desktop.js src/App.js && npm run build && mv build build-desktop"
  }

يجري npm run build:mobile عندما يكون هدف البناء متنقلًا أو npm run build:desktop لنقطة دخول سطح المكتب.



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى