في هذا الدرس سنشرح كيفية تحويل المشروع الى وضع
prod أو بمعنى اخر عمل Deployment للمشروع لكي يصبح قابل للتنفيد على الاجهزة / المتصفحات أو رفع التطبيق على استضافة / سرفر
افتح سطر الأوامر
terminal / command prompt وادهب لمسار مشروعك و قم بتنفيد هدا الأمر لبدأ عملية Deployment ng build --prod
ستلاحظة بسطر الأوامر عملية معالجة للملفات انتظر بعض الوقت وسوف ينهى العملية
بعد الانتهاء ستلاحظ انه قام باضافة مجلد جديد بمشروعك اسمه
dist وبداخله ستجد بعض الملفات + ملف index.html ..وهده هي ملفات المشروع النهائية التي يفترض ان ترفعها على استضافتك او تحتاجها من اجل عمل مشروعك على أي متصفح دون الحاجة لمشغل apache أو nodejs ...فقط كل ماتحتاجه هو ملفات المشروع + متصفح او ادا كنت ترغب برفعه على استضافة فستحتاج لرفع الملفات الى استضافتك بشكل عادي عن طريق FTP والتوجه نحو مسار index.html وسيتم تنفيد مشروعك بشكل طبيعي عند الضغط على ملفindex.html
..طبعا في حال ما ادا كنت تحتاج بمشروعك تطبيق يستخدم API عليك رفعها بالاستضافة أيضا وتحديد مسارها في تطبيقك ولنقل مثلا
http://yourpath.com/api وستعمل ان شاء الله دون مشاكل
مشكلة .أحيانا قد تصادفك مشكلة متكررة جدا خصوصا ادا لم تفتح مشروعك عن طريق apache أو استضافة ( فتحته عن طريق الضغط على ملف
index.html ) ستفاجئ بظهور صفحة بيضاء
سبب هده المشكلة هو ان المتصفح لم يتمكن من تحديد مسارات الملفات التي بداخل المشروع "مثل ملفات js css الصور..." حيث انه لن يجدها ولن يتمكن من تضمينها الى ملف
index.html
حل المشكلة : الحل بسيط وهو الدهاب الى ملف
index.html وهنا نحن لانقصد ملف الموجود بمجلد dist وانما نقصد ملف السورس أي المشروع قبل عملية Deployment
افتح الملف
src/index.html سوف تجدا برأس الصفحة هدا الوسم وهو سبب مشكلة تخبط المتصفح <base href="/">
المتصفح لايفهم مادا يعني مسار الجدر (/) لأنه أساسا لايعرف مكانه (مكان صفحة index.html)
قم باضافة (.) بالمسار حتى تعلم المتصفح انه يتعين عليه الانطلاق في البحث عن مسارات ملفات المشروع من المكان الدي فتحت منه الملف index.html وهكدى سيفهم المتصفح المكان الدي سينطلق منه
حيث سيكون المسار بهدا الشكل
<base href="./">
الان قم بحفظ الصفحة وقم باعادة عمل
Deployment للمشروع وافتح صفحة index.html من المجلد الناتج dist سيعمل المشروع دون مشكلةng build --prod
احيانا قد لاتعمل معك هده الطريقة لسبب ما ربما قد قد لاتعمل معك بعض الصفحات ربما السبب قد يكون لانك اضفت بعض الاضافات plugins javascript حيث قامت بالتحكم بمسار base .لسبب ما.. في هده الحالة ستحتاج الى عمل مسار ديناميكي يتم بناءه عن طريق كود js وأنا صراحة أفضل هدا الحل لانه اكثر ديناميكية ومرونة
وهو انك تضيف هدا الكود وتحدف وسم
base//javascript
document.write('<base href="' + document.location + '" />');
ادا صادفتك اخطاء بمشروعك أثناء عملية building / Deployment دائما لاتنسى فحص وتتبع الخطأ عن طريق
inspector عن طريق الضفط على زر F12 وتختار نافدة console والبحث عن المشكلة فيgoogle أو ضع المشكلة بخانة التعليقات لمساعدتك بحل المشكلة الدروس السابقة :
- المستوى الثاني من Angular
- انشاء واختيار api مع قاعدة البيانات mysql - Angular
- انشاء وتمهيد مشروع الدورة angular
- دمج bootstrap & jquery داخل مشروع angular
- انشاء الصفحة الرئيسية للتطبيق angular
- ماهو الفرق بين API و REST API وماهي وظفتهما - angular
- عرض قائمة users وجلبها عبر API من قاعدة البيانات
- انشاء مستخدم جديد والتعرف على الـ CREATE في API
- تعديل بيانات المستخدم والتعرف على كيفية تمرير parameters بالمكون
- ماهو json web token وماهو OAuth

تعليقات
إرسال تعليق