هر پروژه ایی یک سری dependecy را در خود جای میدهد. dependency ها دنیا را جای بهتری برای زیستن میکنند :)) زیرا شما نیاز نیست همه چیز را از اول بنویسید. برای هر کاری که بخواهید انجام دهید فقط کافی است یک سرچ داخل گوگل بکنید قطعا یک فردی قبلا به آن مشکل خورده و قطعا یک سری افراد برای این مشکل یک راه حل (یک پکیج) نوشتهاند. اینجاست که ما برای مشکلمان فقط کافی است پکیج موردنظرمان را پیدا کنیم و به سراغ فایل pubspec.yaml برویم و قسمت dependencies.yaml را پیدا کنید و پکیج مورد نظر خود را اضافه کنید:
حالا همانطور که شما برای پروژه خود از dependency های مختلف استفاده میکنید افراد دیگر هم همینکار را انجام میدهند. حتی افرادی که میخواهند یک پکیج جدید بنویسند تا کار بقیه را در انجام دادن یک موضوع خاص راحتتر کنند، خودشان نیاز دارند تا از یک سری پکیج افراد دیگر استفاده کنند.
اینجاست که پکیجها به هم دیگر وابستگی پیدا میکنند! کلمه dependency برای برنامه نویسان همانقدر که میتواند جذاب باشد، میتواند ترسناک هم باشد. چون گاهی این dependency های زیاد باعث میشود که مشکلات زیادی به وجود بیاید و دولوپر نتواند به خوبی پروژه را عیب یابی نماید. مثل مشکل زیر:
من اصلا چنین پکیجی را استفاده نکرده ام!!! وقتی سری به dependency های پروژه میزنیم میبینیم که خبری از path_provider نیست:
اینجاست که دستور flutter pub deps به کار می آيد. با استفاده از این دستور میتوانیم ببینیم که path_provider توسط کدام پکیج به پروژه ما افزوده شده است. این دستور به صورت یک نمودار درختی کل dependency های پروژه را به ما نشان میدهد:
این نمودار رو با دقت بررسی میکنیم تا برسیم به path_provider:
path provider پیدا شد حالا برای اینکه ببینیم توسط کدام پکیج به پروژه اضافه شده کافی است توسط دوتا خط فاصله ایی که قبل از اسم path_provider وجود دارد خود را به خط عمودی برسانیم و سپس اسکرول کنیم به بالا تا ببینیم این خط عمودی به کدام پکیج ختم میشود:
تبریک میگوییم، مجرم پیدا شد! همانطور که میبینید این خط عمودی میرسد به flutter_eval حالا فقط نیاز است که با این پکیج مبارزه کنیم تا وقتی خطا برطرف شود. معمولا با آپگرید کردن ورژن پکیج مشکل حل میشود.