تنظيف نواتج بناء مشاريع Flutter على Windows مع تحقق pubspec.yaml ومعاينة المسارات، دون تغيير دائم لسياسة تنفيذ PowerShell.
اختيار المسار قبل التنفيذ
المسار C:\path\to\projects مثال يحتاج استبدالًا، ويجب وضعه بين اقتباسين إذا احتوى مسافات. افحص وجود pubspec.yaml لكل مجلد قبل flutter clean، واستخدم Push-Location وPop-Location مع finally لاستعادة الموقع حتى عند فشل مشروع. لا تعتمد cd .. لأن ترتيب المجلد الحالي قد يختلف بعد استثناء أو رابط مجلد.
لا تغيّر سياسة الجهاز من أجل تنظيف
يمكن تشغيل الأوامر المقروءة مباشرة في جلسة PowerShell المناسبة بدل جعل Set-ExecutionPolicy CurrentUser جزءًا إلزاميًا من المقال. سياسة المؤسسة قد تمنع بعض السكربتات ويجب احترامها. clean يزيل ملفات مولدة لا تبعيات الكاش المشتركة؛ لا تحذف pubspec.lock أو مجلدات source أو رموز نشر احتجتها فقط للحصول على مساحة أكبر.
معاينة المشاريع في Windows
افتح PowerShell في مجلد تعرفه واستخدم مسارًا مطلقًا محددًا بدل الاعتماد على محرك الأقراص الحالي. المتغير projectsRoot في المثال لا يعدل PATH ولا إعداد النظام؛ هو مكان البحث فقط. Test-Path يتحقق من manifest في كل مجلد مباشر، وليس تفتيشًا تكراريًا لكل الجهاز. إذا كان workspace يضم عدة حزم داخلية فلن تشملها هذه المعاينة تلقائيًا، وهذا مقصود حتى تراجع النطاق قبل أي تنفيذ أوسع.
فصل الفحص عن التنظيف
القائمة الناتجة أسماء مسارات فقط. اختر منها مشروعًا متوقف البناء، ادخل مساره ثم شغل flutter clean واقرأ رسائل الأداة. إذا احتجت أتمتة لاحقة فاستخدم Push-Location وtry/finally وPop-Location كي ترجع إلى المكان الأصلي حتى عند فشل الأمر. تحقق من exit code للأداة الخارجية، ولا تعتبر عدم وجود استثناء PowerShell ضمانًا أن Flutter نجح. سجل كل مشروع ونتيجته حتى لا تعيد تنظيف مشاريع نجحت بلا سبب.
حدود أثر flutter clean
الأمر يعيدك إلى بناء يحتاج توليد ملفات من جديد، ولا يزيل كل نسخ Flutter SDK أو كاش pub أو محاكيات Android. قس المصادر المختلفة للمساحة قبل اتخاذ قرار؛ حذف SDK يستعمله مشروع قديم يختلف عن حذف build يمكن توليده. لا تمسح ملفات توقيع Android أو رموز Dart الخاصة بإصدار منشور ضمن أي مجلد تنظفه. ولا تحذف pubspec.lock بغرض تخفيف الحجم لأنه يحدد تبعيات التطبيق التي تحتاج إعادة إنتاجها.
السكربت وسياسة التشغيل
إذا كانت مؤسستك تضبط سياسة سكربتات فلا تغيرها من وصفة عامة. تستطيع قراءة الأوامر وتشغيلها مباشرة ضمن ما يسمح به جهازك، أو استعمال سكربت موقع ومعتمد وفق إدارة الفريق. ليست RemoteSigned على CurrentUser خطوة لازمة لتشغيل flutter clean. بعد الانتهاء افتح مشروعًا مهمًا وشغل التحليل والاختبار والبناء، ثم قارن حجم المساحة المتحررة. إذا لم يتحرر ما توقعت فراجع القياس ولا تنتقل تلقائيًا إلى حذف كاش أو مجلدات نظام أكبر.
حفظ نتيجة المعاينة
احتفظ بقائمة المشاريع التي راجعتها إذا كنت ستنفذ التنظيف في وقت آخر، لكن أعد فحص المسارات ووجود manifest قبل التنفيذ لأن مجلدًا قد يُنقل أو يعاد استخدام اسمه. المسار الذي طبعته المعاينة ليس إذنًا لحذف المجلد نفسه، بل مرشح لتشغيل أداة المشروع من داخله. نجاح clean لا يلغي ضرورة الاحتفاظ بنسخ source تحت Git أو نسخة احتياطية. افحص المساحة بعد كل مجموعة بدل تشغيل حلقة أكبر دون قراءة الأخطاء، وتوقف عند مشروع لا تعرف غرضه حتى لا تعطل بناء فريق آخر أو عملية أرشفة جارية على الجهاز.
مراجعة أخيرة للتطبيق
راجع المسار قبل تنفيذ الأوامر.
مثال الشفرة بعد المراجعة
اقرأ التعليقات ومتطلبات الإعداد قبل النقل إلى مشروعك. أمثلة الواجهات ذات main مستقلة، أما العقود والمقاطع الأصلية وملفات الإعداد فموضح نطاقها داخل المثال.
# PowerShell: preview only; replace this example path.
$projectsRoot = 'C:\Projects'
Get-ChildItem -LiteralPath $projectsRoot -Directory | ForEach-Object {
$manifestPath = Join-Path $_.FullName 'pubspec.yaml'
if (Test-Path -LiteralPath $manifestPath) { $_.FullName }
}
# Review the output. In each selected Flutter project run:
# flutter clean
# No execution-policy changes or recursive deletes are required.مرجع للتنفيذ
راجع التوثيق الخاص بهذا الموضوع وطابق إعداداته مع إصدار أدوات مشروعك. اختبر السلوك المستهدف وحالة الفشل قبل إدماج المثال في تطبيق منشور.






