ملف 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.0Dart| الخاصية | معناها |
|---|---|
| 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.3Dart- مكتبات الطرف الثالث التي يحتاجها مشروعك.
- يتم تحميلها من 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.0Dart- حزم تحتاجها فقط أثناء التطوير أو الاختبار.
- لا تُستخدم في التطبيق نفسه أثناء التشغيل.
🟢 5. flutter (خاص بمشاريع Flutter)
flutter:
assets:
- assets/images/
fonts:
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttfDart⬅️ 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.3Dart✅ خلاصة:
| القسم | الوظيفة |
|---|---|
| name | اسم المشروع |
| version | رقم الإصدار |
| dependencies | الحزم الأساسية |
| dev_dependencies | الحزم الخاصة بالتطوير |
| environment | إصدار Dart المطلوب |
| flutter | إعدادات خاصة بموارد التطبيقات (صور، خطوط) |