إدارة إصدارات المنصات والإضافات في كوردوفا

من موسوعة حسوب
اذهب إلى: تصفح، ابحث

منذ الإصدار 4.3.0، تتيح كوردوفا القدرة على حفظ واستعادة المنصات والإضافات. تسمح هذه الميزة للمطورين بحفظ تطبيقاتهم عند حالة سابقة واستعادتها لاحقًا دون الحاجة إلى مراجعة كل التعليمات في الشيفرة المصدرية للمنصة أو الإضافة.

عند إضافة منصة أو إضافة، ستُحفظ تفاصيل منصة التطبيق وإصدارات الإضافة تلقائيًا في الملفين config.xml و package.json. من الممكن أن تضيف منصة أو إضافة عن طريق تعديل أحد الملفين package.json أو config.xml مباشرةًَ، على افتراض أنك على علمٍ بالوسوم والصيغ الصحيحة. من جهة أخرى، لا يمكن إزالة الإضافات أو المنصات بهذه الطريقة. والطريقة الموصى بها لفعل ذلك هي باستخدام سطر أوامر كوردوفا عبر كتابة الأمرين cordova plugin add|remove ...‎ و cordova platform add | remove ...‎ لتجنب أية مشاكل متعلقة بالمزامنة.

تُحدَّث "الاستعادة" (restore) تلقائيًا عند تنفيذ الأمر "cordova prepare"، عبر استخدام المعلومات المحفوظة مسبقًا في الملفين config.xml و package.json.

القدرة على الحفظ والاستعادة مفيدة جدًا للتطبيقات التي يعمل عليها فريق كبير، بحيث يركز كل عضو في الفريق على منصة أو إضافة معينة. تسهّل هذه الميزة تشارك المشروع وتقليل حجم الشيفرة البرمجية التي يجب أن يُتحقق منها في المستودع.

إصدارات المنصات

حفظ المنصات

يمكنك حفظ منصة معينة عبر الأمر التالي:
$ cordova platform add <platform[@<version>] | directory | git_url>
بعد تنفيذ الأمر أعلاه، سيبدو الملف config.xml الناتج على النحو التالي:
<?xml version='1.0' encoding='utf-8'?>
    ...
    <engine name="android" spec="~4.0.0" />
    ...
</xml>
أما الملف package.json الناتج، فهكذا سيبدو:
"cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "^4.0.0"}
تمنع الراية "‎--nosave" إضافة وحذف المنصات المحددة من الملفين config.xml و package.json. لمنع حفظ منصة، استخدم الأمر التالي:
$ cordova platform add <platform[@<version>] | directory | git_url> --nosave
إليك بعض الأمثلة:
  • 'cordova platform add android' => تسترد النسخة المثبتة من منصة الأندرويد، وتضيفها إلى المشروع، ثم تُحدّث الملفّين config.xml و package.json.
  • 'cordova platform add android@3.7.0' => تسترد منصة الأندرويد ذات الإصدار 3.7.0 عبر مدير الحُزم npm، ثم تضيفها إلى المشروع، ثم تُحدّث الملفين config.xml و package.json.
  • 'cordova platform add https://github.com/apache/cordova-android.git' => يثّبّت مدير الحُزم npm منصة كوردوفا-أندرويد (cordova-android) المحددة من مستودع git، ثم يضيف منصة الأندرويد إلى المشروع، ثم يحدّث الملفين config.xml وpackage.json، ويحدد نسختها من عنوان مستودع git ‏(git-url‏).
  • "cordova platform add C:/path/to/android/platform '=> تسترد منصة الأندرويد من المجلد المحدد، ثم تضيفها إلى المشروع، ثم تُحدّث الملفين config.xml و package.json ثم تشير (points) إلى ذلك الملف.
  • 'cordova platform add android --nosave' => تسترد إصدار منصة الأندرويد المثبتة، وتضيفها إلى المشروع، بيْد أنها لا تضيفه إلى الملفين config.xml أو package.json.
  • 'cordova platform remove android --nosave' => تزيل منصة الأندرويد من المشروع، ولكن لا تزيله من الملفين config.xml أو package.json.

الحفظ الجماعي للمنصات في مشروع قائم

إذا كان لديك مشروع موجود مسبقًا وأردت حفظ جميع المنصات المضافة حاليًا إلى مشروعك، فيمكنك استخدام الأمر التالي:
$ cordova platform save

تحديث وإزالة المنصات

من الممكن تحديث أو حذف المنصات من الملفين config.xml و package.json عبر الأمرين "cordova platform update" و "cordova platform remove":
$ cordova platform update <platform[@<version>] | directory | git_url> --save
$ cordova platform remove <platform>
اطلع على الأمثلة التالية:
  • "cordova platform update android --save" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار المثبت، تُحدِّث هذه التعليمة أيضًا المدخلة في الملف config.xml.
  • "cordova platform update android@3.8.0 --save" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار 3.8.0، ستحدث هذه التعليمة المدخلة في الملف config.xml.
  • "cordova platform update /path/to/android/platform --save' => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار الموجود في المجلد المحدد، ستحدث هذه التعليمة المدخلة في الملف config.xml.
  • 'cordova platform remove android' => تزيل منصة الأندرويد من المشروع، وتحذف مدخلاته من الملفين config.xml و package.json.

استعادة المنصات (Restoring platforms)

تُستعاد المنصات تلقائيًا من الملفين package.json و config.xml عند تنفيذ الأمر 'cordova prepare'. يُفترض بعد تنفيذ ذلك الأمر أن يحتوي الملفان package.json و config.xml منصات وإصدارات متطابقة.

إن أضفت منصة دون تحديد الإصدار أو المجلد أو عنوان مستودع git، فسيُثبَّت الإصدار الموجود في الملف package.json أو config.xml في حال العثور عليه. وفي حالة وجود تعارض، يُعطى الملف package.json الأسبقية على الملف config.xml.

أمثلة

لنفترض أن الملف config.xml يحتوي على المدخلات التالية:
<?xml version='1.0' encoding='utf-8'?>
    ...
    <engine name="android" spec="3.7.0" />
    ...
</xml>
إذا نُفِّذ الأمر 'cordova platform add android' (دون تحديد الإصدار أو المجلد أو عنوان مستودع git)، فستُثبّت المنصة 'android@3.7.0' (كما استدعيت من الملف config.xml). المثال التالي يوضح قواعد الأسبقية في استعادة المنصات. لنفترض أن الملف config.xml يحتوي على المنصة والإصدار التاليين:
<engine name="android" spec=“1.0.0” ></div>
ولنفترض أن الملف package.json يحتوي على المنصة والإصدار التاليين:
"cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "4.0.0"}
عند تنفيذ الأمر prepare، تُعطى محتويات الملف package.json الأسبقية، وسيُحدّث كلا الملفين config.xml و package.json حتى يشير كل منهما إلى نفس المنصات والمتغيرات. لاحظ كيف استُبدل في الملف config.xml الإصدار 4.0.0 (من package.json) بالإصدار (1.0.0). بعد إجراء الأمر 'cordova prepare'، سيبدو الملف config.xml الناتج كالتالي:
<engine name="android" spec=“4.0.0” ></div>
وسيبدو الملف package.json الناتج كالتالي:
"cordova": {"platforms": ["android",]},"dependencies": {"cordova-android": "4.0.0"}

إصدارات الإضافات (Plugin Versioning)

أوامر الإضافة هي مرآة لأوامر المنصة.

حفظ الإضافات

لحفظ إضافة، يمكنك تنفيذ الأمر التالي:
$ cordova plugin add <plugin[@<version>] | directory | git_url>
بعد تنفيذ الأمر أعلاه، سيبدو الملف config.xml الناتج كالتالي:
<?xml version='1.0' encoding='utf-8'?>
    ...
    <plugin name="cordova-plugin-console" spec="~1.0.0" />
    ...
</xml>
وسيبدو الملف package.json الناتج كالتالي:
"cordova": {"plugins": ["cordova-plugin-console"]},"dependencies": {"cordova-plugin-console": "^1.0.0"}
تمنع الراية "‎--nosave" إضافة وحذف الإضافات المحددة من الملفين config.xml و package.json. لمنع حفظ إضافة معينة، يمكنك تنفيذ الأمر التالي:
$ cordova plugin add <plugin[@<version>] | directory | git_url> --nosave
إليك بعض الأمثلة التالية:
  • 'cordova plugin add cordova-plugin-console' => يسترد هذا الأمر النسخة المثبتة من الإضافة console، ثم يضيفها إلى المشروع، ثم يُحدِّث الملفين config.xml و package.json.
  • 'cordova plugin add cordova-plugin-console@0.2.13' => يسترد إضافة الأندرويد ذات الإصدار 0.2.13 عبر مدير الحُزم npm، ويضيفها إلى المشروع، ثم يُحدّث الملفين config.xml و package.json.
  • 'plugin cordova add https://github.com/apache/cordova-plugin-console.git' => يُثبت مديرُ الحزم npm الإضافةَ المحددة من مستودع git، ويضيفها إلى المشروع، ثم يُحدّث الملفين config.xml و package.jsonويستخلص رقم الإصدار من عنوان مستودع git ‏(git-url) المحدد.
  • 'cordova plugin add C: / path / to / console / plugin' => يستعيد الإضافة console من المجلد المحدد، ويضيفها إلى المشروع، ثم يُحدّث الملفين config.xml و package.json ويشير (points) إلى المجلد.

الحفظ الجماعي للإضافات في مشروع قائم

إن كان لديك مشروع موجود مسبقًا، وكنت ترغب في حفظ جميع الإضافات المضافة حاليًا إلى المشروع، فيمكنك استخدام الأمر التالي:
$ cordova plugin save

إزالة الإضافات

من الممكن حذف الإضافات من الملفين config.xml و package.json عبر استعمال الأمر 'cordova plugin remove' مع اسم الإضافة بالشكل التالي:
$ cordova plugin remove <plugin>
انطر مثلًا إلى الأمر التالي:
  • 'cordova plugin remove cordova-plugin-console' => يزيل الإضافة console من المشروع ويحذف مدخلاتها من الملفين config.xml و package.json.

استعادة الإضافات (Restoring plugins)

تٌستعاد الإضافات تلقائيًا من الملفين package.json و config.xml عند تنفيذ الأمر 'cordova prepare'.

يُفترض بعد تنفيذ الأمر prepare أن يحتوي الملفان package.json و config.xml على إضافات وإصدارات متطابقة.

إن أضفت إضافة دون تحديد الإصدار أو المجلد أو عنوان المستودع git، فسيُستخلص الإصدار المراد تثبيته من الملف package.json أو config.xml، في حال العثور عليه. وفي حال وجود تعارض، سيُعطى الملف package.json الأسبقية على config.xml.

أمثلة

لنفترض أن الملف config.xml يحتوي على المدخلات التالية:
<?xml version='1.0' encoding='utf-8'?>
    ...
    <plugin name="cordova-plugin-console" spec="0.2.11" />
    ...
</ xml>
إذا نفَّذت الأمر "Cordova plugin add cordova-plugin-console" دون أت تحدّد الإصدار أو المجلد أو عنوان مستودع git، فستُثبت الإضافة "cordova-plugin-console@0.2.11" (يُستخلص الإصدار من الملف config.xml).

يوضح المثال التالي قواعد الأسبقية في استعادة الإضافات.

لنفترض أن الملف config.xml يحتوي على الإضافة والإصدار التاليين:
<plugin name="cordova-plugin-splashscreen"></div>
ولنفترض أن الملف package.json يحتوي على الإضافة والإصدار التاليين:
"cordova": {"plugins": {"cordova-plugin-splashscreen" : {} } },"dependencies": {"cordova-plugin-splashscreen": "1.0.0"}
عند تنفيذ الأمر prepare، تُعطى الأسبقية لمحتويات الملف package.json، ويُحدّث الملفان config.xml و package.jsonبحيث يحتويان على إضافات ومتغيرات متطابقة. لاحظ كيف أُضيف الإصدار الموجود في package.json‏ (1.0) إلى الملف config.xml. بعد تنفيذ الأمر 'cordova prepare'، سيبدو الملف config.xml الناتج كالتالي:
<plugin name="cordova-plugin-splashscreen" spec="1.0.0"></div>
وسيبدو الملف package.json كالتالي:
"cordova": {"plugins": {"cordova-plugin-splashscreen" : {} } },"dependencies": {"cordova-plugin-splashscreen": "1.0.0"}

انظر أيضًا

مصادر