pubspec yaml in dart

ملف 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إزالة مكتبة تلقائيًا
❗ ملاحظات مهمة:
  1. الفراغات والمسافات (indentation) مهمة جدًا في YAML — أي خطأ صغير يؤدي إلى فشل في التحميل.
  2. يجب أن يكون لكل مستوى مسافة بادئة صحيحة (عادة 2 مسافات).
  3. إذا قمت بتعديل الملف يدويًا، نفذ: arduinoCopyEditflutter 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إعدادات خاصة بموارد التطبيقات (صور، خطوط)