الفرق بين المراجعتين لصفحة: «Cordova/platform plugin versioning ref»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:إدارة إصدارات المنصات والإضافات في كوردوفا}}</noinclude> | <noinclude>{{DISPLAYTITLE:إدارة إصدارات المنصات والإضافات في كوردوفا}}</noinclude> | ||
[[تصنيف: Cordova]] | [[تصنيف: Cordova]] | ||
[[تصنيف: | [[تصنيف: Cordova Platform]] | ||
[[تصنيف: | [[تصنيف: Cordova Plugin]] | ||
منذ الإصدار 4.3.0، تتيح كوردوفا القدرة على حفظ واستعادة المنصات والإضافات. تسمح هذه الميزة للمطورين بحفظ تطبيقاتهم عند حالة سابقة واستعادتها لاحقًا دون الحاجة إلى مراجعة كل التعليمات في الشيفرة المصدرية للمنصة أو الإضافة. | |||
منذ الإصدار 4.3.0، تتيح | |||
عند إضافة منصة أو إضافة، ستُحفظ تفاصيل منصة التطبيق وإصدارات الإضافة تلقائيًا في الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>. من الممكن أن تضيف منصة أو إضافة عن طريق تعديل أحد الملفين <code>package.json</code> أو [[Cordova/config ref|<code>config.xml</code>]] مباشرةًَ، على افتراض أنك على علمٍ بالوسوم والصيغ الصحيحة. من جهة أخرى، لا يمكن إزالة الإضافات أو المنصات بهذه الطريقة. والطريقة الموصى بها لفعل ذلك هي باستخدام سطر أوامر كوردوفا عبر كتابة الأمرين <code>cordova plugin add|remove ...</code> و <code>cordova platform add | remove ...</code> لتجنب أية مشاكل متعلقة بالمزامنة. | |||
تُحدَّث "الاستعادة" (restore) تلقائيًا عند تنفيذ الأمر "<code>cordova prepare</code>"، عبر استخدام المعلومات المحفوظة مسبقًا في الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. | |||
تُحدَّث "الاستعادة" (restore) تلقائيًا عند تنفيذ الأمر "<code>cordova prepare</code>"، عبر استخدام المعلومات المحفوظة مسبقًا في الملفين <code>config.xml</code> و <code>package.json</code>. | |||
القدرة على الحفظ والاستعادة مفيدة جدًا للتطبيقات التي يعمل عليها فريق كبير، بحيث يركز كل عضو في الفريق على منصة أو إضافة معينة. تسهّل هذه الميزة تشارك المشروع وتقليل حجم الشيفرة البرمجية التي يجب أن يُتحقق منها في المستودع. | القدرة على الحفظ والاستعادة مفيدة جدًا للتطبيقات التي يعمل عليها فريق كبير، بحيث يركز كل عضو في الفريق على منصة أو إضافة معينة. تسهّل هذه الميزة تشارك المشروع وتقليل حجم الشيفرة البرمجية التي يجب أن يُتحقق منها في المستودع. | ||
سطر 18: | سطر 15: | ||
$ cordova platform add <platform[@<version>] | directory | git_url> | $ cordova platform add <platform[@<version>] | directory | git_url> | ||
</syntaxhighlight>بعد تنفيذ الأمر أعلاه، سيبدو الملف <code>config.xml</code> الناتج على النحو التالي:<syntaxhighlight lang="xml"> | </syntaxhighlight>بعد تنفيذ الأمر أعلاه، سيبدو الملف [[Cordova/config ref|<code>config.xml</code>]] الناتج على النحو التالي:<syntaxhighlight lang="xml"> | ||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
... | ... | ||
سطر 27: | سطر 24: | ||
"cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "^4.0.0"} | "cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "^4.0.0"} | ||
</syntaxhighlight>تمنع الراية "<code>--nosave</code>" إضافة وحذف المنصات المحددة من الملفين <code>config.xml</code> و <code>package.json</code>. لمنع حفظ منصة، استخدم الأمر التالي:<syntaxhighlight lang="json"> | </syntaxhighlight>تمنع الراية "<code>--nosave</code>" إضافة وحذف المنصات المحددة من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. لمنع حفظ منصة، استخدم الأمر التالي:<syntaxhighlight lang="json"> | ||
$ cordova platform add <platform[@<version>] | directory | git_url> --nosave | $ cordova platform add <platform[@<version>] | directory | git_url> --nosave | ||
</syntaxhighlight>إليك بعض الأمثلة: | </syntaxhighlight>إليك بعض الأمثلة: | ||
*'<code>cordova platform add android</code>' => | *'<code>cordova platform add android</code>' => تسترد النسخة المثبتة من منصة الأندرويد، وتضيفها إلى المشروع، ثم تُحدّث الملفّين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. | ||
*'<code>cordova platform add android@3.7.0</code>' => | *'<code>cordova platform add android@3.7.0</code>' => تسترد منصة الأندرويد ذات الإصدار 3.7.0 عبر مدير الحُزم npm، ثم تضيفها إلى المشروع، ثم تُحدّث الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. | ||
*'<code>cordova platform add <nowiki>https://github.com/apache/cordova-android.git</nowiki></code>' => يثّبّت مدير الحُزم npm منصة كوردوفا-أندرويد (cordova-android) المحددة من مستودع git، ثم يضيف منصة الأندرويد إلى المشروع، ثم يحدّث الملفين <code>config.xml</code> و<code>package.json</code>، ويحدد نسختها من عنوان مستودع git (git-url). | *'<code>cordova platform add <nowiki>https://github.com/apache/cordova-android.git</nowiki></code>' => يثّبّت مدير الحُزم npm منصة كوردوفا-أندرويد (cordova-android) المحددة من مستودع git، ثم يضيف منصة الأندرويد إلى المشروع، ثم يحدّث الملفين [[Cordova/config ref|<code>config.xml</code>]] و<code>package.json</code>، ويحدد نسختها من عنوان مستودع git (git-url). | ||
*"<code>cordova platform add C:/path/to/android/platform</code> '=> | *"<code>cordova platform add C:/path/to/android/platform</code> '=> تسترد منصة الأندرويد من المجلد المحدد، ثم تضيفها إلى المشروع، ثم تُحدّث الملفين <code>config.xml</code> و <code>package.json</code> ثم تشير (points) إلى ذلك الملف. | ||
*'<code>cordova platform add android --nosave</code>' => | *'<code>cordova platform add android --nosave</code>' => تسترد إصدار منصة الأندرويد المثبتة، وتضيفها إلى المشروع، بيْد أنها لا تضيفه إلى الملفين [[Cordova/config ref|<code>config.xml</code>]] أو <code>package.json</code>. | ||
*'<code>cordova platform remove android --nosave</code>' => تزيل منصة الأندرويد من المشروع، ولكن لا تزيله من الملفين <code>config.xml</code> أو <code>package.json</code>. | *'<code>cordova platform remove android --nosave</code>' => تزيل منصة الأندرويد من المشروع، ولكن لا تزيله من الملفين [[Cordova/config ref|<code>config.xml</code>]] أو <code>package.json</code>. | ||
===الحفظ الجماعي للمنصات في مشروع قائم=== | ===الحفظ الجماعي للمنصات في مشروع قائم=== | ||
إذا كان لديك مشروع موجود مسبقًا وأردت حفظ جميع المنصات المضافة حاليًا إلى مشروعك، فيمكنك استخدام الأمر التالي:<syntaxhighlight lang="console"> | إذا كان لديك مشروع موجود مسبقًا وأردت حفظ جميع المنصات المضافة حاليًا إلى مشروعك، فيمكنك استخدام الأمر التالي:<syntaxhighlight lang="console"> | ||
سطر 42: | سطر 39: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===تحديث وإزالة المنصات=== | ===تحديث وإزالة المنصات=== | ||
من الممكن تحديث أو حذف المنصات من الملفين <code>config.xml</code> و <code>package.json</code> عبر الأمرين "<code>cordova platform update</code>" و "<code>cordova platform remove</code>":<syntaxhighlight lang="console"> | من الممكن تحديث أو حذف المنصات من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code> عبر الأمرين "<code>cordova platform update</code>" و "<code>cordova platform remove</code>":<syntaxhighlight lang="console"> | ||
$ cordova platform update <platform[@<version>] | directory | git_url> --save | $ cordova platform update <platform[@<version>] | directory | git_url> --save | ||
$ cordova platform remove <platform> | $ cordova platform remove <platform> | ||
</syntaxhighlight>اطلع على الأمثلة التالية: | </syntaxhighlight>اطلع على الأمثلة التالية: | ||
*"<code>cordova platform update android --save</code>" => | *"<code>cordova platform update android --save</code>" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار المثبت، تُحدِّث هذه التعليمة أيضًا المدخلة في الملف [[Cordova/config ref|<code>config.xml</code>]]. | ||
*"<code>cordova platform update android@3.8.0 --save</code>" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار 3.8.0، ستحدث هذه التعليمة المدخلة في الملف <code>config.xml</code> | *"<code>cordova platform update android@3.8.0 --save</code>" => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار 3.8.0، ستحدث هذه التعليمة المدخلة في الملف [[Cordova/config ref|<code>config.xml</code>]]. | ||
*"<code>cordova platform update /path/to/android/platform --save</code>' => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار الموجود في المجلد المحدد، ستحدث هذه التعليمة المدخلة في الملف <code>config.xml</code> | *"<code>cordova platform update /path/to/android/platform --save</code>' => بالإضافة إلى تحديث منصة الأندرويد إلى الإصدار الموجود في المجلد المحدد، ستحدث هذه التعليمة المدخلة في الملف [[Cordova/config ref|<code>config.xml</code>]]. | ||
*<code>'cordova platform remove android'</code> => تزيل منصة الأندرويد من المشروع، وتحذف مدخلاته من الملفين <code>config.xml</code> و <code>package.json</code>. | *<code>'cordova platform remove android'</code> => تزيل منصة الأندرويد من المشروع، وتحذف مدخلاته من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. | ||
===استعادة المنصات (Restoring platforms)=== | ===استعادة المنصات (Restoring platforms)=== | ||
تُستعاد المنصات تلقائيًا من الملفين <code>package.json</code> و <code>config.xml</code> عند تنفيذ الأمر '<code>cordova prepare</code>'. يُفترض بعد تنفيذ ذلك الأمر أن يحتوي الملفان <code>package.json</code> و <code>config.xml</code> منصات وإصدارات متطابقة. | تُستعاد المنصات تلقائيًا من الملفين <code>package.json</code> و [[Cordova/config ref|<code>config.xml</code>]] عند تنفيذ الأمر '<code>cordova prepare</code>'. يُفترض بعد تنفيذ ذلك الأمر أن يحتوي الملفان <code>package.json</code> و [[Cordova/config ref|<code>config.xml</code>]] منصات وإصدارات متطابقة. | ||
إن أضفت منصة دون تحديد الإصدار أو المجلد أو عنوان مستودع git، فسيُثبَّت الإصدار الموجود في الملف <code>package.json</code> أو <code>config.xml</code> في حال العثور عليه. وفي حالة وجود تعارض، يُعطى الملف <code>package.json</code> الأسبقية على الملف <code>config.xml</code>. | إن أضفت منصة دون تحديد الإصدار أو المجلد أو عنوان مستودع git، فسيُثبَّت الإصدار الموجود في الملف <code>package.json</code> أو [[Cordova/config ref|<code>config.xml</code>]] في حال العثور عليه. وفي حالة وجود تعارض، يُعطى الملف <code>package.json</code> الأسبقية على الملف [[Cordova/config ref|<code>config.xml</code>]]. | ||
====أمثلة==== | ====أمثلة==== | ||
لنفترض أن الملف <code>config.xml</code> يحتوي على المدخلات التالية:<syntaxhighlight lang="xml"> | لنفترض أن الملف <code>config.xml</code> يحتوي على المدخلات التالية:<syntaxhighlight lang="xml"> | ||
سطر 63: | سطر 60: | ||
</syntaxhighlight>إذا نُفِّذ الأمر '<code>cordova platform add android</code>' (دون تحديد الإصدار أو المجلد أو عنوان مستودع git)، فستُثبّت المنصة 'android@3.7.0' (كما استدعيت من الملف <code>config.xml</code>). | </syntaxhighlight>إذا نُفِّذ الأمر '<code>cordova platform add android</code>' (دون تحديد الإصدار أو المجلد أو عنوان مستودع git)، فستُثبّت المنصة 'android@3.7.0' (كما استدعيت من الملف <code>config.xml</code>). | ||
المثال التالي يوضح قواعد الأسبقية في استعادة المنصات. | المثال التالي يوضح قواعد الأسبقية في استعادة المنصات. لنفترض أن الملف [[Cordova/config ref|<code>config.xml</code>]] يحتوي على المنصة والإصدار التاليين:<syntaxhighlight lang="xml"> | ||
لنفترض أن الملف <code>config.xml</code> يحتوي على المنصة والإصدار التاليين:<syntaxhighlight lang="xml"> | |||
<engine name="android" spec=“1.0.0” ></div> | <engine name="android" spec=“1.0.0” ></div> | ||
سطر 71: | سطر 66: | ||
"cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "4.0.0"} | "cordova": {"platforms": ["android"]},"dependencies": {"cordova-android": "4.0.0"} | ||
</syntaxhighlight>عند تنفيذ الأمر <code>prepare</code>، تُعطى محتويات الملف <code>package.json</code> الأسبقية، وسيُحدّث كلا الملفين <code>config.xml</code> و <code>package.json</code> حتى يشير كل منهما إلى نفس المنصات والمتغيرات. لاحظ كيف استُبدل في الملف <code>config.xml</code> الإصدار 4.0.0 (من <code>package.json</code>) بالإصدار (1.0.0). | </syntaxhighlight>عند تنفيذ الأمر <code>prepare</code>، تُعطى محتويات الملف <code>package.json</code> الأسبقية، وسيُحدّث كلا الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code> حتى يشير كل منهما إلى نفس المنصات والمتغيرات. لاحظ كيف استُبدل في الملف [[Cordova/config ref|<code>config.xml</code>]] الإصدار 4.0.0 (من <code>package.json</code>) بالإصدار (1.0.0). | ||
بعد إجراء الأمر '<code>cordova prepare</code>'، سيبدو الملف <code>config.xml</code> الناتج كالتالي:<syntaxhighlight lang="xml"> | بعد إجراء الأمر '<code>cordova prepare</code>'، سيبدو الملف [[Cordova/config ref|<code>config.xml</code>]] الناتج كالتالي:<syntaxhighlight lang="xml"> | ||
<engine name="android" spec=“4.0.0” ></div> | <engine name="android" spec=“4.0.0” ></div> | ||
سطر 86: | سطر 81: | ||
$ cordova plugin add <plugin[@<version>] | directory | git_url> | $ cordova plugin add <plugin[@<version>] | directory | git_url> | ||
</syntaxhighlight>بعد تنفيذ الأمر أعلاه، سيبدو الملف <code>config.xml</code> الناتج كالتالي:<syntaxhighlight lang="xml"> | </syntaxhighlight>بعد تنفيذ الأمر أعلاه، سيبدو الملف [[Cordova/config ref|<code>config.xml</code>]] الناتج كالتالي:<syntaxhighlight lang="xml"> | ||
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | ||
... | ... | ||
سطر 95: | سطر 90: | ||
"cordova": {"plugins": ["cordova-plugin-console"]},"dependencies": {"cordova-plugin-console": "^1.0.0"} | "cordova": {"plugins": ["cordova-plugin-console"]},"dependencies": {"cordova-plugin-console": "^1.0.0"} | ||
</syntaxhighlight>تمنع الراية "<code>--nosave</code>" إضافة وحذف الإضافات المحددة من الملفين <code>config.xml</code> و <code>package.json</code>. لمنع حفظ إضافة معينة، يمكنك تنفيذ الأمر التالي:<syntaxhighlight lang="console"> | </syntaxhighlight>تمنع الراية "<code>--nosave</code>" إضافة وحذف الإضافات المحددة من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. لمنع حفظ إضافة معينة، يمكنك تنفيذ الأمر التالي:<syntaxhighlight lang="console"> | ||
$ cordova plugin add <plugin[@<version>] | directory | git_url> --nosave | $ cordova plugin add <plugin[@<version>] | directory | git_url> --nosave | ||
سطر 102: | سطر 97: | ||
*'<code>cordova plugin add cordova-plugin-console@0.2.13</code>' => يسترد إضافة الأندرويد ذات الإصدار 0.2.13 عبر مدير الحُزم npm، ويضيفها إلى المشروع، ثم يُحدّث الملفين <code>config.xml</code> و <code>package.json</code>. | *'<code>cordova plugin add cordova-plugin-console@0.2.13</code>' => يسترد إضافة الأندرويد ذات الإصدار 0.2.13 عبر مدير الحُزم npm، ويضيفها إلى المشروع، ثم يُحدّث الملفين <code>config.xml</code> و <code>package.json</code>. | ||
*<code>'plugin cordova add <nowiki>https://github.com/apache/cordova-plugin-console.git</nowiki></code>' => يُثبت مديرُ الحزم npm الإضافةَ المحددة من مستودع git، ويضيفها إلى المشروع، ثم يُحدّث الملفين <code>config.xml</code> و <code>package.json</code>ويستخلص رقم الإصدار من عنوان مستودع git (git-url) المحدد. | *<code>'plugin cordova add <nowiki>https://github.com/apache/cordova-plugin-console.git</nowiki></code>' => يُثبت مديرُ الحزم npm الإضافةَ المحددة من مستودع git، ويضيفها إلى المشروع، ثم يُحدّث الملفين <code>config.xml</code> و <code>package.json</code>ويستخلص رقم الإصدار من عنوان مستودع git (git-url) المحدد. | ||
*'<code>cordova plugin add C: / path / to / console / plugin</code>' => | *'<code>cordova plugin add C: / path / to / console / plugin</code>' => يستعيد الإضافة console من المجلد المحدد، ويضيفها إلى المشروع، ثم يُحدّث الملفين <code>config.xml</code> و <code>package.json</code> ويشير (points) إلى المجلد. | ||
===الحفظ الجماعي للإضافات في مشروع قائم=== | ===الحفظ الجماعي للإضافات في مشروع قائم=== | ||
إن كان لديك مشروع موجود مسبقًا، وكنت ترغب في حفظ جميع الإضافات المضافة حاليًا إلى المشروع، فيمكنك استخدام الأمر التالي:<syntaxhighlight lang="console"> | إن كان لديك مشروع موجود مسبقًا، وكنت ترغب في حفظ جميع الإضافات المضافة حاليًا إلى المشروع، فيمكنك استخدام الأمر التالي:<syntaxhighlight lang="console"> | ||
سطر 109: | سطر 104: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===إزالة الإضافات=== | ===إزالة الإضافات=== | ||
من الممكن حذف الإضافات من الملفين <code>config.xml</code> و <code>package.json</code> عبر استعمال الأمر '<code>cordova plugin remove</code>' مع اسم الإضافة بالشكل التالي:<syntaxhighlight lang="console"> | من الممكن حذف الإضافات من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code> عبر استعمال الأمر '<code>cordova plugin remove</code>' مع اسم الإضافة بالشكل التالي:<syntaxhighlight lang="console"> | ||
$ cordova plugin remove <plugin> | $ cordova plugin remove <plugin> | ||
</syntaxhighlight>انطر مثلًا إلى الأمر التالي: | </syntaxhighlight>انطر مثلًا إلى الأمر التالي: | ||
*'<code>cordova plugin remove cordova-plugin-console</code>' => يزيل الإضافة <code>console</code> من المشروع ويحذف مدخلاتها من الملفين <code>config.xml</code> و <code>package.json</code>. | *'<code>cordova plugin remove cordova-plugin-console</code>' => يزيل الإضافة <code>console</code> من المشروع ويحذف مدخلاتها من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>. | ||
===استعادة الإضافات (Restoring plugins)=== | ===استعادة الإضافات (Restoring plugins)=== | ||
تٌستعاد الإضافات تلقائيًا من الملفين <code>package.json</code> و <code>config.xml</code> عند تنفيذ الأمر '<code>cordova prepare</code>'. | تٌستعاد الإضافات تلقائيًا من الملفين <code>package.json</code> و [[Cordova/config ref|<code>config.xml</code>]] عند تنفيذ الأمر '<code>cordova prepare</code>'. | ||
يُفترض بعد تنفيذ الأمر <code>prepare</code> أن يحتوي الملفان <code>package.json</code> و <code>config.xml</code> على إضافات وإصدارات متطابقة. | يُفترض بعد تنفيذ الأمر <code>prepare</code> أن يحتوي الملفان <code>package.json</code> و [[Cordova/config ref|<code>config.xml</code>]] على إضافات وإصدارات متطابقة. | ||
إن أضفت إضافة دون تحديد الإصدار أو المجلد أو عنوان المستودع git، فسيُستخلص الإصدار المراد تثبيته من الملف <code>package.json</code> أو <code>config.xml</code>، في حال العثور عليه. وفي حال وجود تعارض، سيُعطى الملف <code>package.json</code> الأسبقية على <code>config.xml</code>. | إن أضفت إضافة دون تحديد الإصدار أو المجلد أو عنوان المستودع git، فسيُستخلص الإصدار المراد تثبيته من الملف <code>package.json</code> أو [[Cordova/config ref|<code>config.xml</code>]]، في حال العثور عليه. وفي حال وجود تعارض، سيُعطى الملف <code>package.json</code> الأسبقية على [[Cordova/config ref|<code>config.xml</code>]]. | ||
====أمثلة==== | ====أمثلة==== | ||
لنفترض أن الملف <code>config.xml</code> يحتوي على المدخلات التالية:<syntaxhighlight lang="xml"> | لنفترض أن الملف <code>config.xml</code> يحتوي على المدخلات التالية:<syntaxhighlight lang="xml"> | ||
سطر 127: | سطر 122: | ||
... | ... | ||
</ xml> | </ xml> | ||
</syntaxhighlight>إذا | </syntaxhighlight>إذا نفَّذت الأمر "<code>Cordova plugin add cordova-plugin-console</code>" دون أت تحدّد الإصدار أو المجلد أو عنوان مستودع git، فستُثبت الإضافة "cordova-plugin-console@0.2.11" (يُستخلص الإصدار من الملف <code>config.xml</code>). | ||
يوضح المثال التالي قواعد الأسبقية في استعادة الإضافات. | يوضح المثال التالي قواعد الأسبقية في استعادة الإضافات. | ||
لنفترض أن الملف <code>config.xml</code> يحتوي على الإضافة والإصدار التاليين:<syntaxhighlight lang="xml"> | لنفترض أن الملف [[Cordova/config ref|<code>config.xml</code>]] يحتوي على الإضافة والإصدار التاليين:<syntaxhighlight lang="xml"> | ||
<plugin name="cordova-plugin-splashscreen"></div> | <plugin name="cordova-plugin-splashscreen"></div> | ||
سطر 137: | سطر 132: | ||
"cordova": {"plugins": {"cordova-plugin-splashscreen" : {} } },"dependencies": {"cordova-plugin-splashscreen": "1.0.0"} | "cordova": {"plugins": {"cordova-plugin-splashscreen" : {} } },"dependencies": {"cordova-plugin-splashscreen": "1.0.0"} | ||
</syntaxhighlight>عند تنفيذ الأمر <code>prepare</code>، تُعطى الأسبقية لمحتويات الملف <code>package.json</code>، ويُحدّث الملفان <code>config.xml</code> و <code>package.json</code>بحيث يحتويان على إضافات ومتغيرات متطابقة. لاحظ كيف أُضيف الإصدار الموجود في <code>package.json</code> (1.0) إلى الملف <code>config.xml</code>. | </syntaxhighlight>عند تنفيذ الأمر <code>prepare</code>، تُعطى الأسبقية لمحتويات الملف <code>package.json</code>، ويُحدّث الملفان [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>بحيث يحتويان على إضافات ومتغيرات متطابقة. لاحظ كيف أُضيف الإصدار الموجود في <code>package.json</code> (1.0) إلى الملف [[Cordova/config ref|<code>config.xml</code>]]. | ||
بعد تنفيذ الأمر '<code>cordova prepare</code>'، سيبدو الملف <code>config.xml</code> الناتج كالتالي:<syntaxhighlight lang="xml"> | بعد تنفيذ الأمر '<code>cordova prepare</code>'، سيبدو الملف [[Cordova/config ref|<code>config.xml</code>]] الناتج كالتالي:<syntaxhighlight lang="xml"> | ||
<plugin name="cordova-plugin-splashscreen" spec="1.0.0"></div> | <plugin name="cordova-plugin-splashscreen" spec="1.0.0"></div> | ||
سطر 148: | سطر 143: | ||
== انظر أيضا == | == انظر أيضا == | ||
* | * <nowiki/>[[Cordova/plugins|دليل تطوير الإضافات]]. | ||
==مصادر== | ==مصادر== | ||
*[https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/index.html صفحة Platforms and Plugins Version Management في توثيق كوردوفا الرسمي.] | *[https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/index.html صفحة Platforms and Plugins Version Management في توثيق كوردوفا الرسمي.] |
مراجعة 06:53، 27 نوفمبر 2018
منذ الإصدار 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"}