إدارة إصدارات المنصات والإضافات في كوردوفا
تتيح كوردوفا إمكانية حفظ واستعادة المنصات والإضافات. تسمح هذه الميزة للمطورين بحفظ تطبيقاتهم عند حالة سابقة واستعادتها لاحقًا دون الحاجة إلى مراجعة كل التعليمات في الشيفرة المصدرية للمنصة أو الإضافة.
عند إضافة منصة أو إضافة، ستُحفظ تفاصيل منصة التطبيق وإصدارات الإضافة تلقائيًا في الملف package.json
. من الممكن أن تضيف منصة أو إضافة عن طريق تعديل أحد الملف package.json
مباشرةًَ، على افتراض أنك على علمٍ بالوسوم والصيغ الصحيحة. من جهة أخرى، لا يمكن إزالة الإضافات أو المنصات بهذه الطريقة. والطريقة الموصى بها لفعل ذلك هي باستخدام سطر أوامر كوردوفا عبر كتابة الأمرين cordova plugin add|remove ...
و cordova platform add | remove ...
لتجنب أية مشاكل متعلقة بالمزامنة.
تُحدَّث "الاستعادة" (restore) تلقائيًا عند تنفيذ الأمر "cordova prepare
"، عبر استخدام المعلومات المحفوظة مسبقًا في الملفين config.xml
و package.json
.
القدرة على الحفظ والاستعادة مفيدة جدًا للتطبيقات التي يعمل عليها فريق كبير، بحيث يركز كل عضو في الفريق على منصة أو إضافة معينة. تسهّل هذه الميزة تشارك المشروع وتقليل حجم الشيفرة البرمجية التي يجب أن يُتحقق منها في المستودع.
إصدارات المنصات
حفظ المنصات
يمكنك حفظ منصة معينة عبر الأمر التالي:
$ cordova platform add <platform[@<version>] | directory | git_url>
بعد تنفيذ الأمر أعلاه، سيبدو الملف package.json
الناتج على النحو التالي:
"cordova": {
"platforms": [
"android"
]
},
"dependencies": {
"cordova-android": "^8.0.0",
}
تمنع الراية "--nosave
" إضافة وحذف المنصات المحددة من الملف package.json
. لمنع حفظ منصة، استخدم الأمر التالي:
cordova platform add <platform[@<version>] | directory | git_url> --nosave
إليك بعض الأمثلة:
- '
cordova platform add android
' => تسترد النسخة المثبتة من منصة الأندرويد، وتضيفها إلى المشروع، ثم تُحدّث الملفّpackage.json
. - '
cordova platform add android@7.1.4
' => تسترد منصة الأندرويد ذات الإصدار7.1.4
عبر مدير الحُزم npm، ثم تضيفها إلى المشروع، ثم تُحدّث الملفpackage.json
. - '
cordova platform add https://github.com/apache/cordova-android.git
' أو 'cordova platform add https://github.com/apache/cordova-android
' أو 'cordova platform add github:apache/cordova-android
' => يثّبّت مدير الحُزم npm منصة كوردوفا-أندرويد (cordova-android) المحددة من مستودع git، ثم يضيف منصة الأندرويد إلى المشروع، ثم يحدّث الملفpackage.json
. - "
cordova platform add C:/path/to/android/platform
'=> تسترد منصة الأندرويد من المجلد المحدد، ثم تضيفها إلى المشروع، ثم تُحدّث الملفpackage.json
. - '
cordova platform add android --nosave
' => تسترد إصدار منصة الأندرويد المثبتة، وتضيفها إلى المشروع، بيْد أنها لا تضيفه إلى الملفpackage.json
.
تحديث وإزالة المنصات
من الممكن تحديث أو حذف المنصات من الملفين config.xml
و package.json
. نفذ الأمر التالي لتحديث منصة:
cordova platform update <platform[@<version>] | directory | git_url>
لإزالة منصة، نفذ أح الأمر ين التاليين:
cordova platform remove <platform>
cordova platform rm <platform>
اطلع على الأمثلة التالية:
- "
cordova platform update android
" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار المثبت، تُحدِّث هذه التعليمة أيضًا المدخلة في الملفpackage.json
. - "
cordova platform update android@3.8.0
" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار 3.8.0، ستحدث هذه التعليمة المدخلة في الملفpackage.json
. - "
cordova platform update /path/to/android/platform
' => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار الموجود في المجلد المحدد، ستحدث هذه التعليمة المدخلة في الملفpackage.json
. 'cordova platform remove android'
=> تزيل منصة الأندرويد من المشروع، وتحذف مدخلاته من الملفpackage.json
.
ملاحظة: إذا كان تعريف المنصة موجودًا في الملف config.xml
من إصدار سابق من Cordova CLI ، فسيُزال أيضًا من config.xml
.
'cordova platform remove android'
=> تزيل منصة الأندرويد من المشروع، ولكن لا تحذفها من الملفpackage.json
.
استعادة المنصات (Restoring platforms)
تُستعاد المنصات تلقائيًا من الملفين package.json
(و config.xml
) عند تنفيذ الأمر 'cordova prepare
'. في حال تعريف منصة في كلا الملفين، فالأولوية للتعريف الموجود في الملف package.json
.
بعد تنفيذ عملية التحضير (prepare
)، فأي منصة مُستعادة من config.xml
ستحدّث الملف package.json
ليعكس القيم المأخوذة من config.xml
.
إن أضفت منصة دون تحديد الإصدار أو المجلد أو عنوان مستودع جيت (<version | folder | git_url>
)، فسيُثبَّت الإصدار الموجود في الملف package.json
أو config.xml
في حال العثور عليه. وفي حالة وجود تعارض، يُعطى الملف package.json
الأسبقية على الملف config.xml
.
أمثلة
لنفترض أن الملف config.xml
يحتوي على المدخلات التالية:
<?xml version='1.0' encoding='utf-8'?>
...
<engine name="android" spec="7.1.4" />
...
</xml>
إذا نُفِّذ الأمر 'cordova platform add android
' (دون تحديد الإصدار أو المجلد أو عنوان مستودع git)، فستُثبّت المنصة 'android@7.1.4
'.
المثال التالي يوضح قواعد الأسبقية في استعادة المنصات. لنفترض أن الملف config.xml
يحتوي على المنصة والإصدار التاليين:
<engine name="android" spec=“7.4.1” />
ولنفترض أن الملف package.json
يحتوي على المنصة والإصدار التاليين:
"cordova": {
"platforms": [
"android"
]
},
"dependencies": {
"cordova-android": "^8.0.0"
}
عند تنفيذ الأمر prepare
، تُعطى محتويات الملف package.json
الأسبقية على config.xml
، وسيُثبت الإصدار 4.0.0
.
إصدارات الإضافات (Plugin Versioning)
أوامر الإضافة هي مرآة لأوامر المنصة.
حفظ الإضافات
لحفظ إضافة، يمكنك تنفيذ الأمر التالي:
$ cordova plugin add <plugin[@<version>] | directory | git_url>
بعد تنفيذ الأمر أعلاه، سيبدو الملف package.json
الناتج كالتالي:
"cordova": {
"plugins": [
"cordova-plugin-device"
]
},
"devDependencies": {
"cordova-plugin-device": "^1.0.0"
}
تمنع الراية "--nosave
" إضافة وحذف الإضافات المحددة من الملف package.json
. لمنع حفظ إضافة معينة، يمكنك تنفيذ الأمر التالي:
$ cordova plugin add <plugin[@<version>] | directory | git_url> --nosave
إليك بعض الأمثلة التالية:
- '
cordova plugin add cordova-plugin-device
' => يسترد هذا الأمر النسخة المثبتة من الإضافةcordova-plugin-device
، ثم يضيفها إلى المشروع، ثم يُحدِّث الملفpackage.json
. - '
cordova plugin add cordova-plugin-device@2.0.1
' => يسترد الإضافةcordova-plugin-device
ذات الإصدار2.0.1
عبر مدير الحُزم npm، ويضيفها إلى المشروع، ثم يُحدّث الملفpackage.json
. 'cordova plugin add https://github.com/apache/cordova-plugin-device
' أو 'cordova plugin add github:apache/cordova-plugin-device
' => يُثبت مديرُ الحزم npm الإضافةَcordova-plugin-device
من مستودع git، ويضيفها إلى المشروع، ثم يُحدّث الملفpackage.json
.- '
cordova plugin add C: / path / to / console / plugin
' => يستعيد الإضافةcordova-plugin-device
من المجلد المحدد، ويضيفها إلى المشروع، ثم يُحدّث الملفpackage.json
.
الحفظ الجماعي للإضافات في مشروع قائم
إن كان لديك مشروع موجود مسبقًا، وكنت ترغب في حفظ جميع الإضافات المضافة حاليًا إلى المشروع، فيمكنك استخدام الأمر التالي:
$ cordova plugin save
إزالة الإضافات
من الممكن حذف الإضافات من الملفين config.xml
و package.json
عبر استعمال أحد الأمرين التاليين:
cordova plugin remove <plugin>
cordova plugin rm <plugin>
انطر مثلًا إلى الأمر التالي:
- '
cordova plugin remove cordova-plugin-device
' => يزيل الإضافةcordova-plugin-devic
e من المشروع ويحذف مدخلاتها من الملفpackage.json
.
ملاحظة: إذا كان تعريف الإضافة موجودًا في الملف config.xml
من إصدار سابق من سطر أوامر كوردوفا ، فسيُزال أيضًا من config.xml
.
استعادة الإضافات (Restoring plugins)
تٌستعاد الإضافات تلقائيًا من الملفين package.json
و config.xml
عند تنفيذ الأمر 'cordova prepare
'. وفي حال كانت الإضافة مُعرَّفة في كلا الملفين، فستكون الأولوية للملف package.json
.
بعد تنفيذ الأمر prepare
، فأي إضافة مُستعادة من config.xml
ستُحدِّث الملف 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-device" spec="2.0.1" />
...
</ xml>
إذا نفَّذت الأمر "cordova plugin add cordova-plugin-device
" دون أت تحدّد الإصدار أو المجلد أو عنوان مستودع git، فستُثبت الإضافة "cordova-plugin-device@2.0.1
".
يوضح المثال التالي قواعد الأسبقية في استعادة الإضافات.
لنفترض أن الملف config.xml
يحتوي على الإضافة والإصدار التاليين:
<plugin name="cordova-plugin-splashscreen"></div>
ولنفترض أن الملف package.json
يحتوي على الإضافة والإصدار التاليين:
"cordova": {
"plugins": [
"cordova-plugin-splashscreen"
]
},
"devDependencies": {
"cordova-plugin-splashscreen": "1.0.0"
}
عند تنفيذ الأمر prepare
، تُعطى الأسبقية لمحتويات الملف package.json
، ويُثبت الإصدار 1.0
.