ملف pubspec.yaml
هو قلب أي مشروع Dart أو Flutter، ويعمل كـ ملف الإعدادات الرئيسي الذي يحتوي على كل ما يتعلق بالمشروع:
- اسم المشروع
- الوصف
- الإصدارات
- الحزم (Packages)
- الموارد
- إعدادات أخرى
✅ ما هو pubspec.yaml؟
هو ملف بصيغة YAML (ليست JSON أو Dart)، يقوم Dart/Flutter باستخدامه لإدارة:
- الإعدادات الأساسية
- مكتبات الطرف الثالث (dependencies)
- الملفات المرفقة مثل الصور والخطوط (في Flutter)
- سكريبتات البناء
- خصائص مشروعك
🧩 شكل ملف pubspec.yaml
الكامل (مثال):
yamlCopyEdit<code>name: my_app
description: A new Dart project
version: 1.0.0
environment:
sdk: '>=3.0.0 <4.0.0'
dependencies:
http: ^1.2.0
path: ^1.8.3
dev_dependencies:
test: ^1.24.0
# Flutter-specific section
flutter:
assets:
- assets/images/
fonts:
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttf
</code>
Dart✅ شرح كل قسم بالتفصيل:
🟢 1. name
و description
و version
name: my_app
description: A simple app
version: 1.0.0
Dartالخاصية | معناها |
---|---|
name | اسم الحزمة أو المشروع |
description | وصف مختصر |
version | رقم الإصدار (عادةً major.minor.patch ) |
🟢 2. environment
environment:
sdk: '>=3.0.0 <4.0.0'
Dart- تحدد إصدار Dart الذي يعمل عليه المشروع.
- يمكنك أيضًا تحديد نسخة Flutter.
🟢 3. dependencies
dependencies:
http: ^1.2.0
path: ^1.8.3
Dart- مكتبات الطرف الثالث التي يحتاجها مشروعك.
- يتم تحميلها من pub.dev عند تنفيذ
dart pub get
أوflutter pub get
.
🔸 ^1.2.0
تعني: أي إصدار يبدأ من 1.2.0 وحتى أقل من 2.0.0.
🟢 4. dev_dependencies
dev_dependencies:
test: ^1.24.0
Dart- حزم تحتاجها فقط أثناء التطوير أو الاختبار.
- لا تُستخدم في التطبيق نفسه أثناء التشغيل.
🟢 5. flutter
(خاص بمشاريع Flutter)
flutter:
assets:
- assets/images/
fonts:
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttf
Dart⬅️ assets
:
- تحديد ملفات الصور/الفيديو/JSON التي تريد تضمينها داخل التطبيق.
⬅️ fonts
:
- تعريف الخطوط المخصصة التي سيستخدمها التطبيق.
⚙️ أوامر مهمة مرتبطة بـ pubspec.yaml
الأمر | الوظيفة |
---|---|
flutter pub get أو dart pub get | تحميل الحزم من pub.dev |
flutter pub upgrade | تحديث الحزم لأحدث الإصدارات |
flutter pub outdated | معرفة الحزم التي تحتاج تحديث |
flutter pub add http | إضافة مكتبة تلقائيًا مع تحديد الإصدار |
flutter pub remove http | إزالة مكتبة تلقائيًا |
❗ ملاحظات مهمة:
- الفراغات والمسافات (indentation) مهمة جدًا في YAML — أي خطأ صغير يؤدي إلى فشل في التحميل.
- يجب أن يكون لكل مستوى مسافة بادئة صحيحة (عادة 2 مسافات).
- إذا قمت بتعديل الملف يدويًا، نفذ: arduinoCopyEdit
flutter pub get
أو: arduinoCopyEditdart pub get
🧠 مثال عملي لتطبيق Dart:
name: simple_dart_app
description: A simple Dart CLI tool
version: 1.0.0
environment:
sdk: '>=3.0.0 <4.0.0'
dependencies:
http: ^1.2.0
path: ^1.8.3
Dart✅ خلاصة:
القسم | الوظيفة |
---|---|
name | اسم المشروع |
version | رقم الإصدار |
dependencies | الحزم الأساسية |
dev_dependencies | الحزم الخاصة بالتطوير |
environment | إصدار Dart المطلوب |
flutter | إعدادات خاصة بموارد التطبيقات (صور، خطوط) |