الفرق بين المراجعتين ل"React/create a new react app"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(تحديث)
 
(7 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:إضافة React إلى تطبيق جديد}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:إنشاء تطبيق React جديد}}</noinclude>
أسهل طريقة للبدء بمشروع React جديد هي استخدام عدّة البدء.
+
''استعمل سلسلة الأدوات المدمجة (integrated toolchain) من أجل الحصول على أفضل تجربة استخدام وتطوير.''
  
'''ملاحظة:''' تشرح هذه الصّفحة إعداد تطبيق صفحة واحدة (single-page application) مع كل شيء تحتاجه من أجل سير عمل التطوير بسلاسة، بما في ذلك اكتشاف الأخطاء (linting)، والاختبار، وتحسينات الإنتاج، والمزيد من ذلك. تتطلّب هذه الأدوات كاملة المواصفات بعض الوقت ومساحة من القرص لتثبيتها.
+
تشرح هذه الصفحة بعض سلاسل الأدوات المشهورة في [[React]] التي تساعد في مهام مثل:
 +
* تغيير حجم العديد من الملفات والمكونات.
 +
* استعمال مكتبات من طرف ثالث من npm.
 +
* الاكتشاف المبكر عن الأخطاء الشائعة.
 +
* التعديل المباشر (Live-editing) على شيفرة [[CSS]] و [[JavaScript]] في البيئة التطويرية.
 +
* تحسين المخرجات للبيئة الإنتاجية.
 +
لا تتطلب سلسلة الأدوات التي سيوصى باستعمالها في هذه الصفحة أي ضبط مسبق لبدء استعمالها.
  
إن كنت تبحث عن بيئة خفيفة لتجربة React، فاذهب إلى صفحة [[React/try react|تجربة React]] بدلًا من ذلك. فقد يكون [https://raw.githubusercontent.com/reactjs/reactjs.org/master/static/html/single-file-example.html ملف HTML الوحيد] المذكور في تلك الصّفحة كافيًا لكي تبدأ.
+
== قد لا ترغب باستعمال سلسلة من الأدوات ==
 +
إن لم تكن لك سابق خبرة بالمشكلات التي ذُكرت آنفًا، أو لم تشعر بالراحة عند استعمال أدوات [[JavaScript]] بعد، [[React/add react to a website|أضف React كوسوم <code><script></code> مجرَّدة في صفحة HTML]] وافترض أنَّ [[React/add react to a website#.D8.A7.D8.AE.D8.AA.D9.8A.D8.A7.D8.B1.D9.8A: .D8.AC.D8.B1.D8.A8 React .D9.85.D8.B9 JSX|استعمال JSX]] أمر اختياري.
  
أخيرًا، إن لم تكن تبني تطبيق صفحة واحدة، فبإمكانك [[React/add react to an existing app|إضافة React إلى تطبيقك الحالي]] أو استخدامها عبر [[React/cdn links|شبكة توزيع المحتوى (اختصارًا CDN)]] و<nowiki/>[[React/react without jsx|بدون إنجاز خطوة البناء]].
+
هذه الطريقة أيضًا هي أبسطة طريقة لدمج [[React]] مع صفحة ويب. يمكن في أي وقت استعمال أي سلسلة من الأدوات مهما كانت ضخمة إن وجدت أنها مفيدة.
  
== إنشاء تطبيق React ==
+
== سلسلة الأدوات المقترحة ==
إنّ أفضل طريقة للبدء ببناء تطبيق صفحة واحدة في React هي استخدام الأمر <code>[http://github.com/facebookincubator/create-react-app create-react-app]</code>، فهو يُعدُّ لك بيئة التطوير بحيث تتمكّن من استخدام آخر ميّزات JavaScript، ويُزوِّدك بتجربة تطوير جميلة، ويُحسِّن تطبيقك من أجل الإنتاج. يجب أن تمتلك إصدار <code>NodeJs 6</code> فما فوق لديك:<syntaxhighlight lang="text">
+
يوصي فريق [[React]] بشكل أساسي الحلول التالية:
npm install -g create-react-app
+
* إن كنت تتعلم [[React]] أو تريد إنشاء [[React/glossary#.D8.A7.D9.84.D8.AA.D8.B7.D8.A8.D9.8A.D9.82 .D9.88.D8.AD.D9.8A.D8.AF .D8.A7.D9.84.D8.B5.D9.81.D8.AD.D8.A9|تطبيق ذي صفحة واحدة]]، استعمل [[React/add react to a new app#.D8.A7.D9.84.D8.A8.D9.8A.D8.A6.D8.A9 Create React App|البيئة Create React App]].
create-react-app my-app
+
* إن كنت تبني موقعًا يصيَّر من طرف الخادم (server-rendered website) مع [[Node.js]]، جرب استعمال [[React/add react to a new app#Next.js|Next.js]].
 +
* إن كنت تبني موقعًا ثابتًا يركز على المحتوى (static content-oriented website)، جرب استعمال [[React/add react to a new app#Gatsby|Gatsby]].
 +
* إن كنت تبني مكتبة لمكون ما أو تدمج مع شيفرة أساسية (codebase)، جرب استعمال [[React/add react to a new app#.D8.B3.D9.84.D8.A7.D8.B3.D9.84.D8.A9 .D8.A3.D8.AF.D9.88.D8.A7.D8.AA .D8.B0.D8.A7.D8.AA .D9.85.D8.B1.D9.88.D9.86.D8.A9 .D8.A3.D9.83.D8.A8.D8.B1|سلاسل أدوات ذات مرونة أكبر]].
  
 +
=== البيئة Create React App ===
 +
إنَّ Create React App هي بيئة مناسبة ومريحة لتعلم [[React]]، وهي أفضل طريقة لبدء بناء تطبيق جديدة ذي صفحة وحيدة في [[React]].
 +
 +
يضبط الأمر <code>create-react-app</code> البيئة التطويرية الخاصة بك، وبذلك تستطيع استعمال أحدث ميزات [[JavaScript]]، والحصول على أفضل تجربة تطوير، بالإضافة إلى تحسين تطبيقك وتهيئته للإنتاج. ستحتاج إلى الإصدار 8.1 من [[Node.js]] أو ما بعده والإصدار 5.6 من npm أو ما بعده على جهازك. لإنشاء مشروع جديد، نفذ ما يلي:<syntaxhighlight lang="shell">
 +
npx create-react-app my-app
 
cd my-app
 
cd my-app
 
npm start
 
npm start
 +
</syntaxhighlight>'''ملاحظة''': الأمر <code>npx</code> ليس فيه أي خطأ كتابي، إذ هو أداة تشغيل للحزم تأتي مع [https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b الإصدار 5.2 وما بعده من npm].
 +
 +
إنشاء تطبيق [[React]] لا يملئ فراغ الواجهة الخلفية أو قواعد البيانات. جلَّ ما يحدث هو إنشاء أنبوب بناء واجهة أمامية (frontend build pipeline)، لذا تستطيع استعماله مع أية واجهة خلفية تريد؛ فهو يستخدم في الخلفية [https://babeljs.io/ Babel] و [https://webpack.js.org/ webpack]، بيد أنّك لا تحتاج إلى معرفة أي شي عن الواجهات الخلفية.
 +
 +
عندما تصبح جاهزًا للنشر على البيئة الإنتاجية، سينشئ تنفيذ الأمر <code>npm run build</code> نسخة مبنية محسَّنة من تطبيقك في المجلد build. تستطيع تعلم المزيد حول البيئة Create React App من ملف [https://github.com/facebook/create-react-app#create-react-app- اقرأني] (README) الخاص بها و[https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#table-of-contents دليل المستخدم].
 +
 +
=== Next.js ===
 +
يعدُّ [[Next.js]] إطار عمل مشهور وخفيف لبناء التطبيقات الثابتة والمصيرة من طرف الخادم مع [[React]]. يتضمن حلولًا غير تقليدية للتنسيق والتوجيه، ويفترض أنَّك تستعمل [[Node.js]] بيئةً للخادك.
  
</syntaxhighlight>إن كنت تمتلك إصدار <code>npm 5.2.0</code> فما فوق فبإمكانك استخدام الأمر <code>[https://www.npmjs.com/package/npx npx]</code> بدلًا من ذلك:<syntaxhighlight lang="text">
+
تعلم المزيد حول [[Next.js]] من [https://nextjs.org/learn/ الدليل الرسمي] الموجود على [https://nextjs.org موقعه].
npx create-react-app my-app
 
  
cd my-app
+
=== Gatsby ===
npm start
+
الأداة Gatsby هي أفضل وسيلة لإنشاء مواقع ويب ساكنة مع [[React]]، إذ تمكِّننا من استعمال مكونات [[React]] ولكن مع تصيير مخرجات [[HTML]] و [[CSS]] مسبقًا لضمان الحصول على أسرع زمن تحميل.
</syntaxhighlight>لا يتعامل الأمر <code>create-react-app</code> مع منطق الخلفيّة (backend logic) أو قواعد البيانات، فهو يُنشِئ خط بناء للواجهة الأماميّة (frontend) بحيث يُمكنِك استخدامها مع أي خلفيّة تريد، ويستخدم أدوات بناء مثل [http://babeljs.io/ Babel] و [https://webpack.js.org/ webpack] خفيةً، ولكنّها تعمل بدون الحاجة لأي إعدادات.
 
  
عندما تكون جاهزًا لتوزيع إنتاجك، فسيُنشِئ لك الأمر <code>npm run build</code> نسخة مُحسَّنة من تطبيقك في المجلّد <code>build</code>. بإمكانك أن تتعلّم المزيد حول الأمر <code>create-react-app</code> من خلال [https://github.com/facebookincubator/create-react-app#create-react-app- الملف التمهيدي له في github] و[https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#table-of-contents دليل المستخدم].
+
يمكنك تعلم الأداة Gatsby من [https://www.gatsbyjs.org/docs/ الدليل الرسمي] لها و[https://www.gatsbyjs.org/docs/gatsby-starters/ معرض عدة البدء].
  
== معدات أخرى للبدء ==
+
=== سلاسلة أدوات ذات مرونة أكبر ===
لقد أنشأنا [[React/starter kits|قائمة بمعدّات البدء المُقدَّمة من قبل طرف ثالث (third-party)]] والتي نوصي بها رسميًّا.
+
سلاسل الأدوات التالية توفر مرونةً أكبر وخيارات أكثر. ننصح المستخدمين ذوي الخبرة باستعمالها:
 +
* [https://neutrinojs.org/ Neutrino]: تدمج قوة [https://webpack.js.org/ webpack] مع بساطة الضبط المسبق الافتراضي (presets)، وتُضمِّن ضبطًا مسبقًا [https://neutrinojs.org/packages/react/ لتطبيقات React] و[https://neutrinojs.org/packages/react-components/ مكونات React].
 +
* [https://nx.dev/react Nx]: أداة للتطوير على مجلد واحد ( full-stack monorepo development). تدعم [[React]] و [[Next.js]] و [https://expressjs.com/ Express] وغيرها.
 +
* [https://parceljs.org/ Paracel]: أداة سريعة لتحزيم تطبيقات الويب التي [https://parceljs.org/recipes.html#react تعمل مع React] دون أي ضبط.
 +
* [https://github.com/jaredpalmer/razzle Razzle]: هو إطار عمل تصيير من طرف الخادم ولا يتطلب أي ضبط ولكن يتسم بالمرونة أكثر من إطار العمل [[Next.js]].
  
تختلف هذه المعدّات قليلًا في توجهها ولكنّها جاهزة للإنتاج، ومُصانة بشكل جيّد، ولا تتطلّب إعدادًا للبدء.
+
== إنشاء سلسلة أدوات (toolchain) من الصفر ==
 +
سلسلة أدوات بناء شيفرة [[JavaScript]] تتكون عادةً من:
 +
* '''مدير حزم''' مثل [https://yarnpkg.com/ Yarn] أو [https://www.npmjs.com/ npm]. يمكِّنك هذا المدير من الاستفادة قابلية اتساع بيئة العمل عبر تثبيت الحزم المتنوعة الموفرة من طرف ثالث وتحديثها بسهولة.
 +
* '''محزِّم''' مثل [https://webpack.js.org/ webpack] أو [https://parceljs.org/ Paracel]. يمكِّنك المحزِّم من كتابة شيفرة لوحدةٍ ما وتحزيمها في حُزَمٍ صغيرة لتحسين زمن التحميل.
 +
* '''مفسر''' مثل [http://babeljs.io/ بابل] (Babel). يمكِّنك المفسر من كتابة شيفرة [[JavaScript]] بأحدث إصدار وتعمل في الإصدارات القديمة من المتصفحات.
 +
إن كنت تفضِّل إعداد سلسلة أدوات [[JavaScript]] الخاصة بك من الصفر، اطلع على [https://blog.usejournal.com/creating-a-react-app-from-scratch-f3c693b84658 هذا الدليل] الذي يعيد إنشاء بعض وظائف [[React/add react to a new app#.D8.A7.D9.84.D8.A8.D9.8A.D8.A6.D8.A9 Create React App|البيئة Create React App]].
  
يُمكنك التحقّق أيضًا من [[React/starter kits|قائمة معدّات البدء الأخرى]] التي يُساهِم بها مجتمع React.
+
لا تنسَ التأكد من [[React/optimizing performance#.D8.A7.D8.B3.D8.AA.D8.AE.D8.AF.D8.A7.D9.85 .D9.86.D8.B3.D8.AE.D8.A9 .D8.A7.D9.84.D8.A5.D9.86.D8.AA.D8.A7.D8.AC|إعداد سلسلة أدواتك المخصصة من أجل الإنتاج بشكل جيد ومناسب]].
  
== المستوى المتقدم ==
 
إن كنت ترغب بإعداد مشروعك يدويًّا فانظر إلى فقرة تثبيت React من صفحة [[React/add react to an existing app|إضافة React إلى تطبيق موجود]]..
 
 
==انظر أيضًا==
 
==انظر أيضًا==
 
*[[React/try react|تجربة React]]
 
*[[React/try react|تجربة React]]
*إضافة React إلى تطبيق جديد (الصفحة الحالية)
 
 
*[[React/add react to an existing app|إضافة React إلى تطبيق موجود]]
 
*[[React/add react to an existing app|إضافة React إلى تطبيق موجود]]
 
*[[React/cdn links|روابط شبكة توزيع المحتوى CDN]]
 
*[[React/cdn links|روابط شبكة توزيع المحتوى CDN]]
  
 
== مصادر ==
 
== مصادر ==
* [https://reactjs.org/docs/add-react-to-a-new-app.html صفحة إضافة React إلى تطبيق جديد في توثيق React الرسمي].
+
* [https://reactjs.org/docs/create-a-new-react-app.html صفحة إنشاء تطبيق React جديد في توثيق React الرسمي].
 
[[تصنيف:React]]
 
[[تصنيف:React]]
 +
[[تصنيف:React Installation]]

المراجعة الحالية بتاريخ 09:03، 31 أكتوبر 2020

استعمل سلسلة الأدوات المدمجة (integrated toolchain) من أجل الحصول على أفضل تجربة استخدام وتطوير.

تشرح هذه الصفحة بعض سلاسل الأدوات المشهورة في React التي تساعد في مهام مثل:

  • تغيير حجم العديد من الملفات والمكونات.
  • استعمال مكتبات من طرف ثالث من npm.
  • الاكتشاف المبكر عن الأخطاء الشائعة.
  • التعديل المباشر (Live-editing) على شيفرة CSS و JavaScript في البيئة التطويرية.
  • تحسين المخرجات للبيئة الإنتاجية.

لا تتطلب سلسلة الأدوات التي سيوصى باستعمالها في هذه الصفحة أي ضبط مسبق لبدء استعمالها.

قد لا ترغب باستعمال سلسلة من الأدوات

إن لم تكن لك سابق خبرة بالمشكلات التي ذُكرت آنفًا، أو لم تشعر بالراحة عند استعمال أدوات JavaScript بعد، أضف React كوسوم <script> مجرَّدة في صفحة HTML وافترض أنَّ استعمال JSX أمر اختياري.

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

سلسلة الأدوات المقترحة

يوصي فريق React بشكل أساسي الحلول التالية:

البيئة Create React App

إنَّ Create React App هي بيئة مناسبة ومريحة لتعلم React، وهي أفضل طريقة لبدء بناء تطبيق جديدة ذي صفحة وحيدة في React.

يضبط الأمر create-react-app البيئة التطويرية الخاصة بك، وبذلك تستطيع استعمال أحدث ميزات JavaScript، والحصول على أفضل تجربة تطوير، بالإضافة إلى تحسين تطبيقك وتهيئته للإنتاج. ستحتاج إلى الإصدار 8.1 من Node.js أو ما بعده والإصدار 5.6 من npm أو ما بعده على جهازك. لإنشاء مشروع جديد، نفذ ما يلي:

npx create-react-app my-app
cd my-app
npm start

ملاحظة: الأمر npx ليس فيه أي خطأ كتابي، إذ هو أداة تشغيل للحزم تأتي مع الإصدار 5.2 وما بعده من npm.

إنشاء تطبيق React لا يملئ فراغ الواجهة الخلفية أو قواعد البيانات. جلَّ ما يحدث هو إنشاء أنبوب بناء واجهة أمامية (frontend build pipeline)، لذا تستطيع استعماله مع أية واجهة خلفية تريد؛ فهو يستخدم في الخلفية Babel و webpack، بيد أنّك لا تحتاج إلى معرفة أي شي عن الواجهات الخلفية.

عندما تصبح جاهزًا للنشر على البيئة الإنتاجية، سينشئ تنفيذ الأمر npm run build نسخة مبنية محسَّنة من تطبيقك في المجلد build. تستطيع تعلم المزيد حول البيئة Create React App من ملف اقرأني (README) الخاص بها ودليل المستخدم.

Next.js

يعدُّ Next.js إطار عمل مشهور وخفيف لبناء التطبيقات الثابتة والمصيرة من طرف الخادم مع React. يتضمن حلولًا غير تقليدية للتنسيق والتوجيه، ويفترض أنَّك تستعمل Node.js بيئةً للخادك.

تعلم المزيد حول Next.js من الدليل الرسمي الموجود على موقعه.

Gatsby

الأداة Gatsby هي أفضل وسيلة لإنشاء مواقع ويب ساكنة مع React، إذ تمكِّننا من استعمال مكونات React ولكن مع تصيير مخرجات HTML و CSS مسبقًا لضمان الحصول على أسرع زمن تحميل.

يمكنك تعلم الأداة Gatsby من الدليل الرسمي لها ومعرض عدة البدء.

سلاسلة أدوات ذات مرونة أكبر

سلاسل الأدوات التالية توفر مرونةً أكبر وخيارات أكثر. ننصح المستخدمين ذوي الخبرة باستعمالها:

  • Neutrino: تدمج قوة webpack مع بساطة الضبط المسبق الافتراضي (presets)، وتُضمِّن ضبطًا مسبقًا لتطبيقات React ومكونات React.
  • Nx: أداة للتطوير على مجلد واحد ( full-stack monorepo development). تدعم React و Next.js و Express وغيرها.
  • Paracel: أداة سريعة لتحزيم تطبيقات الويب التي تعمل مع React دون أي ضبط.
  • Razzle: هو إطار عمل تصيير من طرف الخادم ولا يتطلب أي ضبط ولكن يتسم بالمرونة أكثر من إطار العمل Next.js.

إنشاء سلسلة أدوات (toolchain) من الصفر

سلسلة أدوات بناء شيفرة JavaScript تتكون عادةً من:

  • مدير حزم مثل Yarn أو npm. يمكِّنك هذا المدير من الاستفادة قابلية اتساع بيئة العمل عبر تثبيت الحزم المتنوعة الموفرة من طرف ثالث وتحديثها بسهولة.
  • محزِّم مثل webpack أو Paracel. يمكِّنك المحزِّم من كتابة شيفرة لوحدةٍ ما وتحزيمها في حُزَمٍ صغيرة لتحسين زمن التحميل.
  • مفسر مثل بابل (Babel). يمكِّنك المفسر من كتابة شيفرة JavaScript بأحدث إصدار وتعمل في الإصدارات القديمة من المتصفحات.

إن كنت تفضِّل إعداد سلسلة أدوات JavaScript الخاصة بك من الصفر، اطلع على هذا الدليل الذي يعيد إنشاء بعض وظائف البيئة Create React App.

لا تنسَ التأكد من إعداد سلسلة أدواتك المخصصة من أجل الإنتاج بشكل جيد ومناسب.

انظر أيضًا

مصادر