بررسی pubspec.yaml در فلاتر

هر فریمورک برای ذخیره تنظیمات خاص مربوط به خود و یا پکیج مربوطه از فایل های کانفیگ استفاده می کند. برخی از فایل های پیکربندی فایل های متنی ساده هستند اما برخی دیگر ممکن است در فرمت خاصی برای برنامه ذخیره شوند.

در فلاتر برای ذخیره اطلاعات و پیکربندی پروژه از yaml استفاده می شود که تحت عنوان pubspec.yaml هست.

یک فایل pubspec ساده میتواند به این صورت باشد:

name: my_app
version: 1.0.3
description: >-
  This is a new app created by me... .
homepage: https://example.com/my_app
documentation: https://example.com/my_app/docs
environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  bloc: ^2.0.4
   share: ^0.6.5+4
dev_dependencies:
  test: '>=1.15.0 <2.0.0'




فایل pubspec می تواند فیلم های زیر را داشته باشد:

name(Required)

هر پکیج به یک اسم نیاز دارد. که در صورت انتشار و اشتراک گذاری به این نام شناخته می شود.

تمام حروف آن باید کوچک باشد و برای جدا سازی کلمات باید از خط تیره (_) استفاده شود.

مثل:just_like_this




version(Required)

هر پکیج یا برنامه دارای یک نسخه است که برای انتشار آن در pub.dev به شماره نسخه نیاز دارد.

شماره نسخه سه عدد است که با نقطه از هم جدا شده اند.مانند:0.2.43

همچنین می تواند پسوند های ساخت:

+1, +2, +hotfix.oopsie

یا پیش انتشار:

-dev.4, -alpha.12, -beta.7, -rc.5

داشته باشد.

برای اطلاع بیشتر از چگونگی نوشتن ورژن ، دیدن این سایت خالی از لطف نیست.

description(Required)

توضیحات برای پکیج های شخصی شما اختیاری است، اما اگر قصد انتشار پکیج خود را دارید باید توضیحی بنویسید که حتما به زبان انگلیسی باشد.




homepage(Optional)
repository(Optional)
issue_tracker(Optional)
documentation(Optional)

این فیلد ها به ترتیب برای قرار دادن ، سایت اصلی پکیج ، مخزن git ، بخش مربوط به issue و مستندات هست که به استفاده کننده ، معرفی می شود.




dependencies(Optional)

اگر برنامه شما نیاز به یک پکیج دیگر داشته باشد این فیلد کمک می کند آن را به برنامه اضافه کنید.

به عنوان مثال:

dependencies:
  qr_flutter: ^3.1.0

برای یادگیری چگونگی نوشتن ورژن پکیج مورد نیاز به اینجا سر بزنید.

نکته:اگر به هر دلیلی نمی خواستید ورژن پکیج را بنویسید می توانید از کلمه کلیدی any به جای آن استفاده کنید.

هر پکیج می تواند زیر مجموعه های دیگری بپذیرد:

dependencies:
  angular:
    git:  'git@github.com:angular/angular.dart'
    path: path/to/angular 
     ref: tag | commit hash | branch

برای مثال در اینجا این پکیج به جای میزبان pub.dev ، از آدرس گیت گذاشته شده clone می شود و یا اگر آن را به صورت local داشته باشیم ، از محل path فراخوانده می شود.

فیلد ref هم تگ ، commit hash ، یا برنچ مورد استفاده را مشخص می کند.

از جهت دیگر بعضی از پکیج ها فقط در زمان دولوپ به کار می آیند یعنی هنگامی که داریم کدنویسی می کنیم کاربرد دارند و بودن و نبودن آن در خروجی release برنامه تاثیری ندارد که آن ها را در فیلد:

dev_dependencies

می‌ آوریم.




environment

یک پکیج یا برنامه می تواند مشخص کند که کدام نسخه از دارت SDK را پشتیبانی می کند.

به عنوان مثال ، محدودیت زیر می گوید که این پکیج با هر نسخه دارت 2.10.0 یا بالاتر کار می کند.

environment:
sdk: '>=2.10.0 <3.0.0'

همچنین میتوان نسخه فلاتر را مشخص کرد:

environment:
sdk: '>=1.19.0 <3.0.0'
flutter: ">=1.12.0 <2.0.0"

باید در نظر داشته باشد که pubspec فقط این فیلد ها را مورد نظر دارد و به فواصل بسیار حساس هست.