الفرق بين المراجعتين لصفحة: «Cordova/cli»

من موسوعة حسوب
ط نقل محمد-بغات صفحة Cordova/CLI إلى Cordova/cli
تحديث
 
(7 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude>
<noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude>
[[تصنيف: Cordova]]
[[تصنيف: Cordova]]
[[تصنيف: CLI]]
يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها.  
يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها.  


هذه هي الصيغة العامة لأوامر واجهة سطر الأوامر:  
الصيغة العامة لأوامر واجهة سطر الأوامر هي بالشكل التالي:  
<syntaxhighlight lang="console">cordova <command> [options] -- [platformOpts]‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova <command> [options] -- [platformOpts]‎</syntaxhighlight>


== لائحة الأوامر العامة ==
== لائحة الأوامر العامة ==
يمكن استخدام هذه الأوامر متوفرة في أي وقت.   
يمكن استخدام الأوامر التالية في أي وقت.   
{| class="wikitable"
{| class="wikitable"
!الأمر
!الأمر
سطر 20: سطر 19:
|-
|-
|<code>telemetry</code>
|<code>telemetry</code>
|تفعيل مجموعة القياس (telemetry collection) أو إيقافها  
|تفعيل مجموعة القياس (telemetry collection) أو إيقافها.
|-
|-
|<code>config</code>  
|<code>config</code>  
|تعيين، و تحصيل، و حذف، و تعديل وسرد قائمة الخيارات العامة لكوردوفا
|تعيين، وجلب، وحذف، وتعديل وسرد قائمة الخيارات العامة لكوردوفا.
|}
|}


== لائحة أوامر المشروع ==
== لائحة أوامر المشروع ==
تُدعم هذه الأوامر عندما يكون مجلد العمل الحالي مشروعًا صالحًا لكوردوفا.  
تُدعَم الأوامر التالية عندما يكون مجلد العمل الحالي مشروعًا صالحًا.  
{| class="wikitable"
{| class="wikitable"
!الأمر
!الأمر
سطر 33: سطر 32:
|-
|-
|<code>info</code>  
|<code>info</code>  
|يولد هذا الأمر معلومات عن المشروع
|يولد هذا الأمر معلومات عن المشروع.
|-
|-
|<code>requirements</code>
|<code>requirements</code>
|يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة  
|يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة.
|-
|-
|<code>platform</code>  
|<code>platform</code>  
|إدارة منصات المشاريع
|إدارة منصات المشروع.
|-
|-
|<code>plugin</code>  
|<code>plugin</code>  
|إدارة إضافات المشروع  
|إدارة إضافات المشروع.
|-
|-
|<code>prepare</code>
|<code>prepare</code>
|نسخ الملفات في المنصة (أو المنصات) لأجل البناء
|نسخ الملفات في المنصة (أو المنصات) لأجل البناء.
|-
|-
|<code>compile</code>  
|<code>compile</code>  
|بناء المنصة (ات)  
|بناء المنصة(ات).
|-
|-
|<code>clean</code>  
|<code>clean</code>  
|تنظيف المشروع من آثار البناء
|تنظيف المشروع من آثار البناء.
|-
|-
|<code>run</code>  
|<code>run</code>  
|تشغيل المشروع (بما في ذلك prepare && compile)  
|تشغيل المشروع (بما في ذلك التحضير <code>prepare</code> والتصريف <code>compile</code>).
|-
|-
|<code>serve</code>  
|<code>serve</code>  
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك prepare)
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير <code>prepare</code>).
|}
|}


== خيارات شائعة ==
== خيارات شائعة ==
تنطبق هذه الخيارات على جميع أوامر واجهة سطر الأوامر في كوردوفا.   
تنطبق الخيارات التالية على جميع أوامر واجهة سطر الأوامر في كوردوفا.   
{| class="wikitable"
{| class="wikitable"
!الأمر       
!الأمر       
!الشرح
!الشرح
|-
|-
|‎-d أو‎ --verbose
|<code>‎-d</code> أو <code>‎‎ ‎--verbose</code>
|تقوم بإخراج معلومات أكثر تفصيلًا إلى الصدفة (shell). يمكنك أيضًا الاشتراك في الحدثين <code>log</code> و <code>warn</code> إذا كنت تستخدم <code>cordova-cli</code> كوحدة عقدية (node module) عبر استدعاء <code>cordova.on('log', function() {})‎</code> أو <code>cordova.on('warn', function() {})‎</code>.  
|يظهر معلومات أكثر تفصيلًا على الصدفة (shell). يمكنك أيضًا الاشتراك في الحدثين <code>log</code> و <code>warn</code> إذا كنت تستخدم <code>cordova-cli</code> كوحدة عقدية (node module) عبر استدعاء <code>cordova.on('log', function() {})‎</code> أو <code>cordova.on('warn', function() {})‎</code>.  
|-
|-
|‎-v أو ‎--version‎   
|<code>‎-v أو ‎--version‎</code>    
|طباعة إصدار <code>cordova-cli</code> المثبت.
|طباعة إصدار <code>cordova-cli</code> المثبت.
|-
|-
|<nowiki>--no-update-notifier</nowiki>
|<code>--no-update-notifier</code>
|سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلاً من ذلك إضافة التعبير ‎<code>"optOut": true</code> في الملف ‎<code>~/.config/configstore/update-notifier-cordova.json</code> أو تعيين متغير البيئة <code>NO_UPDATE_NOTIFIER</code> عند أي قيمة (انظر التفاصيل في [https://www.npmjs.com/package/update-notifier#user-settings توثيق update-notifier]).
|سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلًا من ذلك إضافة التعبير ‎<code>"optOut": true</code> إلى الملف ‎<code>~/.config/configstore/update-notifier-cordova.json</code> أو تعيين متغير البيئة <code>NO_UPDATE_NOTIFIER</code> إلى أية قيمة (انظر التفاصيل في [https://www.npmjs.com/package/update-notifier#user-settings توثيق update-notifier]).
|-
|-
|<nowiki>--nohooks</nowiki>
|<code>--nohooks</code>
|منع تنفيذ الخطافات (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل)
|منع تنفيذ [[Cordova/hooks|الخطافات]] (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل).
|-
|-
|<nowiki>--no-telemetry</nowiki>
|<code>--no-telemetry</code>
|تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي.
|تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي.
|}
|}
سطر 84: سطر 83:
== خيارات مخصوصة بالمنصات (Platform-specific options) ==
== خيارات مخصوصة بالمنصات (Platform-specific options) ==
بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر  مع الفاصل "<code>--</code>"، والذي يوقف تحليل (parsing) الأمر في الوحدة <code>cordova-lib</code> ويُمرر باقي الخيارات للمنصات لأجل تحليلها.
بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر  مع الفاصل "<code>--</code>"، والذي يوقف تحليل (parsing) الأمر في الوحدة <code>cordova-lib</code> ويُمرر باقي الخيارات للمنصات لأجل تحليلها.
=== أمثلة ===
*
*


يوضح هذا المثال كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع الإضافة <code>camera</code> وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار ‎<code>--keystore</code>:  
يوضح المثال التالي كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع إضافة [[Cordova/cordova plugin camera|الكاميرا]] وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار ‎<code>--keystore</code>:  
<syntaxhighlight lang="console"># إنشاء مشروع كوردوفا
<syntaxhighlight lang="shell"># إنشاء مشروع كوردوفا
cordova create myApp com.myCompany.myApp myApp
cordova create myApp com.myCompany.myApp myApp
cd myApp
cd myApp
سطر 98: سطر 95:
# config.xml و package.json
# config.xml و package.json
cordova platform add android
cordova platform add android
# يتحقق هذا الأمر مما إذا كان النظام مُعدا ليناء منصة أندرويد
# يتحقق هذا الأمر مما إذا كان النظام مُعدًا لبناء منصة أندرويد
cordova requirements android
cordova requirements android
# يبني أندرويد ويحذف المخرجات الزائدة
# يبني أندرويد ويحذف المخرجات الزائدة
سطر 107: سطر 104:
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>


== الأمر cordova create ==
== الأمر <code>cordova create</code> ==
 
=== ملخص ===
 
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.  
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova create path [id [name [config]]] [options]‎</syntaxhighlight>  
<syntaxhighlight lang="shell">cordova create path [id [name [config]]] [options]‎</syntaxhighlight>  
{| class="wikitable"
{| class="wikitable"
!الأمر
!القيمة
!الشرح
!الشرح
|-
|-
|<code>path</code>  
|<code>path</code>  
|تنشئ هذه الخاصية مجلدًا، والذي يجب ألا يكون موجودًا سلفًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه.  
|تنشئ مجلدًا، ويُشترط ألا يكون موجودًا مسبقًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه.  
|-
|-
|<code>id</code>  
|<code>id</code>  
|القيمة الافتراضية: <code>io.cordova.hellocordova</code>
|القيمة الافتراضية: <code>io.cordova.hellocordova</code>


مُعرِّف لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية <code>id</code> في العنصر <code>widget</code> في المف <code>config.xml</code>. يمكن تغيير هذه القيمة، ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء حزم [[Java|جافا]]. يوصى بتحديد قيمة مناسبة.  
يمثِّل مُعرِّفًا لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية <code>id</code> في العنصر <code>[[Cordova/config ref#widget|widget]]</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذه القيمة، ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء حزم [[Java|جافا]]. لذا يوصى بتحديد قيمة مناسبة.  
|-
|-
|<code>name</code>  
|<code>name</code>  
|القيمة الافتراضية: <code>HelloCordova</code>  
|القيمة الافتراضية: <code>HelloCordova</code>  


عنوان العرض الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>config.xml</code>. يمكن تغيير هذا ولكن  تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة،، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة.  
عنوان العرض (display title) الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذا ولكن  تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة.  
|-
|-
|<code>config</code>  
|<code>config</code>  
|سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف ‎<code><path></code>/.cordova/config.json
|سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف ‎<code><path></code>/.cordova/config.json.
|}
|}
===خيارات===
===الخيارات التي يمكن استعمالها===
{| class="wikitable"
{| class="wikitable"
!الأمر
!الأمر
سطر 148: سطر 142:
|رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه.
|رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه.
|}
|}
=== بنية المجلد ===  
=== بنية مجلد المشروع ===  


تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:  
تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:  
<syntaxhighlight lang="console">myapp/
<syntaxhighlight lang="text">myapp/
|-- config.xml
|-- config.xml
|-- hooks/
|-- hooks/
سطر 164: سطر 158:
| |-- ios/
| |-- ios/
|-- plugins/
|-- plugins/
   |--cordova-plugin-camera/</syntaxhighlight>  
   |--cordova-plugin-camera/
==== الملف Config.xml ====  
</syntaxhighlight>  
==== الملف <code>Config.xml</code> ====
 
يحتوي هذا الملف على إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر [[Cordova/config ref|توثيق الملف Config.xml]].
====المجلد <code>www‎</code>====  


يحتوي هذا الملف إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر أيضا [[Cordova/config ref|توثيق الملف Config.xml]].  
يحتوي المجلد <code>www/‎</code> على أصول الويب (web artifacts) الخاصة بالمشروع، مثل ملفات [[HTML|html.]] و [[CSS|cs.]] و [[JavaScript|js.]] كمطور لتطبيقات كوردوفا، فإنَّ معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر <code>cordova prepare</code> إلى المجلد <code>www</code> الخاص بكل منصة على حدة. ويعاد إنتاج المجلد المصدري <code>www</code> داخل المجلد الفرعي لكل منصة، مثلًا في المجلدين <code>platforms/ios/www</code> أو <code>platforms/android/assets/www</code>
====<code>www/</code>====


يحتوي المجلد <code>www/‎</code> على أصول الويب (web artifacts) الخاصة بالمشروع، مثل ملفات html. و cs. و js. كمطور لتطبيقات كوردوفا، فإن معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر <code>cordova prepare</code> إلى المجلد <code>www</code> الخاص بكل منصة على حدة. ويعاد إنتاج المجلد المصدري <code>www</code> داخل المجلد الفرعي لكل منصة، مثلًا في المجلدين <code>platforms/ios/www</code> أو <code>platforms/android/assets/www</code>. نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري <code>www</code>، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليط إضافة المجلد المصدري <code>www</code>، جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.  
نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري <code>www</code>، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليك إضافة المجلد المصدري <code>www</code> جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.  
====<code>platforms/‎</code>====  
====المجلد <code>platforms‎</code>====  


يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك.   
يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك.   


'''ملاحظة:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد <code>/platform/</code>، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق لا يمنع ذلك. الملفات الموجودة في هذا المجلد سيُكتب فوقها (overwritten) بشكل روتيني عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.  
'''ملاحظة:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد <code>/platform/</code>، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق يسمح بذلك. الملفات الموجودة في هذا المجلد ستستبدل (overwritten) باستمرار عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.  
====<code>plugins/‎</code>====  
====المجلد <code>plugins‎</code>====  


الإضافات التي أُضيفت ستُسختلص أو تُتسخ في هذا المجلد.  
الإضافات التي أُضيفت للمشروع ستُستخلص أو تُتسخ في هذا المجلد.  
====<code>hooks</code>/‎====  
====المجلد <code>hooks</code>‎====  


قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.  
قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.  


راجع الصفحة [[Cordova/hooks|الخطافات]] لمزيد من المعلومات.  
راجع صفحة [[Cordova/hooks|الخطافات]] لمزيد من المعلومات.  
====<code>merges/‎</code>====  
====المجلد <code>merges‎</code>====  


يتم تضمين أصول الويب الخاصة بالمنصة (ملفات HTML و CSS و[[JavaScript|جافاسكريبت]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/‎</code> محل الملفات المطابقة في المجلد <code>www/‎</code> الخاص بالمنصة المعنية.   
يتم تضمين أصول الويب الخاصة بالمنصة (ملفات [[HTML]] و [[CSS]] و [[JavaScript|JavaScript]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/‎</code> محل الملفات المطابقة في المجلد <code>www/‎</code> الخاص بالمنصة المعنية.   


المثال التالي يفترض هيكل المشروع التالي:  
المثال التالي يفترض هيكل المشروع التالي:  
<syntaxhighlight lang="console">merges/
<syntaxhighlight lang="text">merges/
|-- ios/
|-- ios/
| -- app.js
| -- app.js
سطر 197: سطر 194:
-- app.js‎</syntaxhighlight>  
-- app.js‎</syntaxhighlight>  


بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين <code>app.js</code> و <code>android.js</code>. أما تطبيق iOS فلن يحتوي إلا على الملف <code>app.js</code>، الموجود في المسار <code>merges/ios/app.js</code>، وسيتجاوز (override) الملف <code>app.js</code> الموجود في المجلد <code>www/‎</code>.  
بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين <code>app.js</code> و <code>android.js</code>. أما تطبيق iOS فلن يحتوي إلا على الملف <code>app.js</code> الموجود في المسار <code>merges/ios/app.js</code>، وسيستبدل (override) الملف <code>app.js</code> الموجود في المجلد <code>www/‎</code>.  
===== إداة الإصدارات =====  
===== إداة الإصدارات =====  


من المستحسن عدم إدراج المجلدين <code>platforms/‎</code> و <code>plugins/</code> ‎في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. ستُحفظ االمنصة والإضافة خاصتك في الملفين <code>config.xml</code> و <code>package.json</code> تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر <code>cordova prepare</code>.
من المستحسن عدم إدراج المجلدين <code>platforms/‎</code> و <code>plugins/</code> ‎في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. ستُحفَظ المنصة والإضافة خاصتك في الملفين <code>config.xml</code> و <code>package.json</code> تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر <code>cordova prepare</code>.


===أمثلة===  
=== أمثلة ===
*
*


* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين:  
* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين:  
<syntaxhighlight lang="console">cordova create myapp com.mycompany.myteam.myapp MyApp‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova create myapp com.mycompany.myteam.myapp MyApp‎</syntaxhighlight>
* إنشاء مشروع كوردوفا مع رابط رمزي (symlink) إلى مجلد <code>www</code> موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:
* إنشاء مشروع كوردوفا مع وصلة رمزي (symlink) إلى مجلد <code>www</code> موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو إن كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:
<syntaxhighlight lang="console">cordova create myapp --link-to=../www‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova create myapp --link-to=../www‎</syntaxhighlight>
 
== الأمر platform command ==
 
=== ملخص ===


== الأمر <code>platform command</code> ==
يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها.   
يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها.   


تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع.  
تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova {platform | platforms} [
<syntaxhighlight lang="shell">cordova {platform | platforms} [
     add <platform-spec> [...] {--save | link=<path> } |
     add <platform-spec> [...] {--save | link=<path> } |
     {remove | rm}  platform [...] {--save}|
     {remove | rm}  platform [...] {--save}|
سطر 232: سطر 226:
|<code>add <platform-spec> [...]‎</code>
|<code>add <platform-spec> [...]‎</code>
|                                   
|                                   
|إضافة منصات محددة
|إضافة منصات محددة.
|-
|-
|
|
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم حفظ <code><platform-spec></code> في الملفين <code>config.xml</code> و <code>package.json</code> بعد تثبيتها باستخدام الوسم <code><engine></code>  
|عدم حفظ <code><platform-spec></code> في الملفين [[Cordova/config ref|config.xml]] و package.json بعد تثبيتها باستخدام الوسم <code><engine></code>.
|-
|-
|
|
|‎<code>--link=<path>‎</code>
|‎<code>--link=<path>‎</code>
|<nowiki>--link=</nowiki><code><path></code>
|عندما يكون <code><platform-spec></code> مسارًا محليًا، فسينشئ هذا الأمر الفرعي رابطًا لمكتبة المنصة مباشرةً بدلًامن إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة).
عندما يكون <code><platform-spec></code> عبارة مسارًا محليًا، فسينشئ هذا الأمر رابطًا لمكتبة المنصة مباشرةً بدلاً من إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة)  
remove
|-
|-
|<code>remove <platform>‎[...]‎</code>
|<code>remove <platform>‎[...]‎</code>
|
|
|إزالة المنصات المحددة
|إزالة المنصات المحددة.
|-
|-
|
|
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم حذف المنصات المحددة من الملفين <code>config.xml</code> و <code>package.json</code> بعد إزالتها
|عدم حذف المنصات المحددة من الملفين [[Cordova/config ref|config.xml]] و package.json بعد إزالتها.
|-
|-
|<code>update platform[‎...]‎</code>
|<code>update platform[‎...]‎</code>
|
|
|تحديث المنصات المحددة  
|تحديث المنصات المحددة.
|-
|-
|
|
|‎<code>--save</code>
|‎<code>--save</code>
|تحديث الإصدار المحدد في الملف <code>config.xml</code>
|تحديث الإصدار المحدد في الملف [[Cordova/config ref|config.xml]].
|-
|-
|<code>list</code>
|<code>list</code>
|
|
|سرد جميع المنصات المثبتة والمتاحة في لائحة.
|سرد جميع المنصات المثبتة والمتاحة في قائمة.
|-
|-
|<code>check</code>
|<code>check</code>
سطر 270: سطر 262:
|<code>save</code>
|<code>save</code>
|
|
|حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف config.xml
|حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف [[Cordova/config ref|config.xml]].
|}
|}


سطر 276: سطر 268:


هناك عدة طرق لتحديد منصة معينة:  
هناك عدة طرق لتحديد منصة معينة:  
<syntaxhighlight lang="console"><platform-spec> : platform[@version] | path | url[#commit-ish]‎</syntaxhighlight>  
<syntaxhighlight lang="shell"><platform-spec> : platform[@version] | path | url[#commit-ish]‎</syntaxhighlight>  
   
   
{| class="wikitable"
{| class="wikitable"
سطر 283: سطر 275:
|-
|-
|<code>platform</code>
|<code>platform</code>
|اسم المنصة، على سبيل المثال، <code>android</code>، و <code>ios</code>، <code>وwindows</code> إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.
|اسم المنصة، على سبيل المثال، <code>android</code>، و <code>ios</code>، و <code>windows</code> ...إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.
|-
|-
|<code>version</code>  
|<code>version</code>  
|مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإصدار الرمزي semver.
|مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (SemVer، اختصار للكلميتن Semantic Versioning).
|-
|-
|<code>path</code>  
|<code>path</code>  
|المسار إلى المجلد أو الملف tarball الذي يحتوي  المنصة.
|مسار إلى المجلد أو الملف tarball الذي يحتوي  المنصة.
|-
|-
|<code>url</code>  
|<code>url</code>  
سطر 295: سطر 287:
|-
|-
|<code>commit-ish</code>
|<code>commit-ish</code>
|المرجع "إلزام/وسم/فرع" (Commit/tag/branch). إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "master".
|مرجع من أجل <code>Commit/tag/branch</code>. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>".
|}
|}
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
*أندرويد  
*[[Cordova/platforms android|أندرويد]]
*iOS  
*[[Cordova/platforms ios|iOS]]
* ويندوز (‎‎8.1, Phone 8.1, UWP - Windows 10)  
* [[Cordova/platforms windows|ويندوز]] (‎‎8.1, Phone 8.1, UWP - Windows 10)  
* Blackberry10
* أوبونتو
* Browser  
* Browser  
=== المنصات الموقوفة (Deprecated Platforms) ===
* [[Cordova/platforms electron|Electron]]
* Amazon-fireos (استخدم منصة أندرويد بدلاً منه)
* WP8 (استخدم ويندوز بدلاً منه)
* Windows 8.0 (استخدم الإصدارات القديمة من كوردوفا)
* نظام تشغيل Firefox (استخدام الإصدارات القديمة من كوردوفا)
 
=== أمثلة ===
=== أمثلة ===
*
*


* إضافة إصدار مثبّت (pinned version) من المنصتين <code>android</code> و <code>ios</code>، وحفظ الإصدار الذي تم تنزيله في الملفين <code>config.xml</code> و <code>package.json</code>:  
* إضافة إصدار مثبّت (pinned version) من المنصتين <code>android</code> و <code>ios</code>، وحفظ الإصدار الذي تم تنزيله في الملفين <code>config.xml</code> و <code>package.json</code>:  
<syntaxhighlight lang="console">cordova platform add android ios‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform add android ios‎</syntaxhighlight>
* إضافة منصة أندرويد مع الإصدار الرمزي <code>‎ ^ 5.0.0</code> وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>:  
* إضافة منصة أندرويد مع الإصدار [http://semver.org/ SemVer ^ 5.0.0] وحفظه في الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>:  
<syntaxhighlight lang="console">cordova platform add android@^5.0.0‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform add android@^5.0.0‎</syntaxhighlight>
* إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>:  
* إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>:  
<syntaxhighlight lang="console">cordova platform add https://github.com/myfork/cordova-android.git#4.0.0‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform add https://github.com/myfork/cordova-android.git#4.0.0‎</syntaxhighlight>
* إضافة منصة باستخدام مجلد محلي باسم <code>android</code>:  
* إضافة منصة باستخدام مجلد محلي باسم <code>android</code>:  
<syntaxhighlight lang="console">cordova platform add ../android‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform add ../android‎</syntaxhighlight>
* إضافة منصة باستخدام ملف tarball المحدد:  
* إضافة منصة باستخدام ملف tarball المحدد:  
<syntaxhighlight lang="console">cordova platform add ../cordova-android.tgz‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform add ../cordova-android.tgz‎</syntaxhighlight>
* إزالة منصة <code>android</code> من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:  
* إزالة منصة <code>android</code> من المشروع ومن الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>:  
<syntaxhighlight lang="console">cordova platform rm android‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform rm android‎</syntaxhighlight>
* إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين <code>config.xml</code> و <code>package.json</code>:  
* إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>:  
<syntaxhighlight lang="console">cordova platform rm android --nosave‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform rm android --nosave‎</syntaxhighlight>
* سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:  
* سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:  
<syntaxhighlight lang="console">cordova platform ls‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform ls‎</syntaxhighlight>
* حفظ إصدارات جميع المنصات المضافة حاليا إلى المشروع في الملفين <code>config.xml</code> و <code>package.json</code>
* حفظ إصدارات جميع المنصات المضافة حاليًا إلى المشروع في الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>
<syntaxhighlight lang="console">cordova platform save‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova platform save‎</syntaxhighlight>
 
== الأمر cordova plugin ==


=== ملخص ===  
== الأمر <code>cordova plugin</code> ==
 
يُمكّن هذا الأمر من إدارة إضافات المشروع.
يُمكّن هذا الأمر من إدارة إضافات المشروع  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova {plugin | plugins} [
<syntaxhighlight lang="shell">cordova {plugin | plugins} [
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --browserify | --force} |
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
     {remove | rm} {<pluginid> | <name>} --save |
     {remove | rm} {<pluginid> | <name>} --save |
     {list | ls} |
     {list | ls} |
    search [<keyword>] |
     save |
     save |
]</syntaxhighlight>  
]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!أوامر فرعية
!أوامر فرعية
سطر 352: سطر 333:
|<code>add <plugin-spec> [...]‎</code>
|<code>add <plugin-spec> [...]‎</code>
|                                   
|                                   
|يضيف هذا الأمر إضافات محددة
|يضيف هذا الأمر إضافات محددة.
|-
|-
|
|
|<code>add <plugin-spec> [...]‎</code>
| --searchpath <code><directory>‎</code>
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولا في هذا المجلد وكل من المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>*nix</code> و "؛" في ويندوز.
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>nix*</code> أو "؛" في ويندوز.
|-
|-
|
|
سطر 364: سطر 345:
|
|
|‎<code>--link</code>
|‎<code>--link</code>
|عند التثبيت من مسار محلي، فسيتم إنشاء رابط رمزي (symbolic link) بدلاً من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات.
|عند التثبيت من مسار محلي، فسيتم إنشاء وصلة رمزي (symbolic link) بدلًا من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات.
|-
|-
|
|
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>.  
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>.  
|-
|
|<code>--browserify</code>
|تصريف (Compile) إضافة [[JavaScript|جافاسكريبت]] في وقت البناء باستخدام browserify بدلا من runtime.
|-
|-
|
|
سطر 378: سطر 355:
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
|-
|-
|<code>remove `</code>
|<code>remove`</code>
|‎‎<code>`[...]</code>
|‎‎‎‎<code>`[...]</code>
|
|
|-
|-
|<code>remove <platform>‎[...]‎</code>
|
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code>
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code>
سطر 388: سطر 365:
|<code>list</code>
|<code>list</code>
|
|
|سرد قائمة من الإضافات المثبتة حاليا
|سرد قائمة من الإضافات المثبتة حاليًا.  
|-
|<code>search [<keyword>]‎[...]</code>
|
|البحث في الصفحة http://plugins.cordova.io عن الإضافات التي تطابق الكلمات الرئيسية.
|-
|-
|<code>save</code>
|<code>save</code>
|
|
|حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع
|حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع.
|}
|}
=== تحديد الإضافات (Plugin-spec) ===  
=== تحديد الإضافات (Plugin-spec) ===  


هناك عدة طرق لتحديد الإضافة:  
هناك عدة طرق لتحديد الإضافة:  
<syntaxhighlight lang="console"><plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir]</syntaxhighlight>  
<syntaxhighlight lang="shell"><plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir]
</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!القيمة
!القيمة
سطر 407: سطر 381:
|-
|-
|<code>scope</code>
|<code>scope</code>
|نطاق الإضافة المنشورة على هيئة حزمة npm  نطاقية ([https://docs.npmjs.com/misc/scope scoped npm package])  
|نطاق الإضافة المنشورة على هيئة حزمة npm  نطاقية ([https://docs.npmjs.com/misc/scope scoped npm package]).
|-
|-
|<code>plugin</code>
|<code>plugin</code>
|مُعرّف (id) الإضافة (معرف الإضافة في سجل npm أو في <code>‎--searchPath</code>)
|مُعرّف (id) الإضافة (في سجل npm أو في <code>‎--searchPath</code>).
|-
|-
|<code>version</code>  
|<code>version</code>  
|مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإصدار الرمزي semver  
|مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (semver).
|-
|-
|<code>directory</code>
|<code>directory</code>
|المجلد الذي يحتوي على الملف <code>plugin.xml</code>
|المجلد الذي يحتوي على الملف <code>plugin.xml</code>.
|-
|-
|<code>url</code>
|<code>url</code>
|رابط مستودع git الذي يحتوي الملف <code>plugin.xml</code>  
|رابط مستودع git الذي يحتوي الملف <code>plugin.xml</code>.
|-
|-
|<code>commit-ish</code>
|<code>commit-ish</code>
|مرجع "الالتزام/الوسم/الفرع" (Commit/tag/branch). إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "<code>master</code>"
|مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "<code>master</code>".
|}
|}
=== خوارزمية حل الإضافات (Algorithm for resolving plugins) ===  
=== خوارزمية استبيان الإضافات ===  


عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على حل (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب ‎الأسبقية):  
عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على استبيان (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب ‎الأسبقية):  
* قيمة العنصر <code>plugin-spec</code> الوارد في الأمر (على سبيل المثال <code>cordova plugin add pluginID@version</code>)  
* قيمة العنصر <code>plugin-spec</code> الوارد في الأمر (على سبيل المثال <code>cordova plugin add pluginID@version</code>).
* قيمة <code>plugin-spec</code> المحفوظة في الملفين <code>config.xml</code> و <code>package.json</code> (أي إن سبق وأضيفت الإضافة بدون الخيار ‎<code>--nosave</code>)  
* قيمة <code>plugin-spec</code> المحفوظة في الملفين <code>config.xml</code> و <code>package.json</code> (أي إن سبق وأضيفت الإضافة بدون الخيار ‎<code>--nosave</code>).
* اعتبارًا من الإصدار 1.6 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد [http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html#specifying-project-requirements ارتباطاتها] في الملف <code>package.json</code>)  
* اعتبارًا من الإصدار 6.1 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد [http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html#specifying-project-requirements ارتباطاتها] في الملف <code>package.json</code>).
* أحدث إصدار منشور فيnpm للإضافة.  
* أحدث إصدارات الإضافة المنشورة في npm..
===أمثلة===  
===أمثلة===  
*
*


* إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد ‎<code>../plugins</code> للبحث عن الإضافات.  
* إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد ‎<code>../plugins</code> للبحث عن الإضافات.  
<syntaxhighlight lang="console">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins
* إضافة <code>cordova-plugin-camera</code> مع الإصدار الرمزي [http://semver.org/ semver] ‏‎<code>^2.0.0</code> وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>:  
</syntaxhighlight>
<syntaxhighlight lang="console">cordova plugin add cordova-plugin-camera@^2.0.0‎</syntaxhighlight>
* إضافة <code>cordova-plugin-camera</code> مع الإصدار [http://semver.org/ semver] ‏‎<code>^2.0.0</code> وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>:  
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera@^2.0.0‎</syntaxhighlight>
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد:  
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد:  
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera‎</syntaxhighlight>
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera‎</syntaxhighlight>
* يضيف هذا المثال الإضافة من ملف tarball المحدد:  
* يضيف هذا المثال الإضافة من ملف tarball المحدد:  
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera.tgz‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin add ../cordova-plugin-camera.tgz‎</syntaxhighlight>
* إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:  
* إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:  
<syntaxhighlight lang="console">cordova plugin rm camera‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin rm camera‎</syntaxhighlight>
* إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</code>:  
* إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</code>:  
<syntaxhighlight lang="console">cordova plugin rm camera --nosave‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin rm camera --nosave‎</syntaxhighlight>
* إدارج قائمة من جميع الإضافات المثبتة في المشروع:  
* إدارج قائمة من جميع الإضافات المثبتة في المشروع:  
<syntaxhighlight lang="console">cordova plugin ls‎</syntaxhighlight>  
<syntaxhighlight lang="shell">cordova plugin ls‎</syntaxhighlight>  
=== الإضافات المُتعارضة (Conflicting plugins) ===  
=== الإضافات المُتعارضة ===  
 
قد يحدث تعارض بين الإضافات في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.


يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم XML. لقد تم تقديم (implement) عملية رصد التعارض لتمنع إضافة الإضافات حتى لا تقوم إحدى الإضافات بالكتابة فوق (overwrite) التغييرات التي إجرتها إضافة أخرى في الوسم <code>edit-config</code>.
قد يحدث تعارض بين الإضافات (Conflicting plugins) في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر [[XML]].  


سيُطلق خطأ عند العثور على تعارض في <code>edit-config</code>، ولن تُضاف الإضافة. ستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎<code>--force</code>، والتي تفرض إضافة الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.  
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم [[XML]]. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تكتب إحدى الإضافات فوق (overwrite) التغييرات التي أجرتها إضافة أخرى عبر الوسم <code>edit-config</code>.


ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]]  لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الأمثلة.  
سيُطلق خطأ عند رصد تعارضٍ في <code>edit-config</code>، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎<code>--force</code>، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.  


== الأمر cordova prepare ==
ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]]  لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الحصول على الأمثلة.
 
=== ملخص ===


== الأمر <code>cordova prepare</code> ==
يحوِّل هذا الأمر البيانات الوصفية في الملف <code>config.xml</code> إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK.  
يحوِّل هذا الأمر البيانات الوصفية في الملف <code>config.xml</code> إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova prepare [<platform> [..]]
<syntaxhighlight lang="shell">cordova prepare [<platform> [..]]
    [--browserify]‎</syntaxhighlight>  
</syntaxhighlight>  
===خيارات===
===الخيارات التي يمكن استعمالها===
{| class="wikitable"
{| class="wikitable"
!الخيار
!الخيار
سطر 473: سطر 445:
|‎<code><platform> [..]‎</code>
|‎<code><platform> [..]‎</code>
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
|-
|‎<code>--browserify</code>
|تصريف (Compile) ملفات [[JavaScript|جافاسكريبت]] الخاصة بالإضافة في وقت البناء باستخدام browserify بدلا من runtime.
|}
|}


== الأمر cordova compile ==
== الأمر <code>cordova compile</code> ==
 
الأمر <code>cordova compile</code> هو جزءٌ من أوامر البناء في كوردوفا. إلا أنه يكتفي بتنفيذ خطوة التصريف (compilation) فقط، دون القيام بالتحضير (prepare). من الشائع استدعاء <code>cordova build</code> بدلًا من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد (extending) باستخدام [[Cordova/hooks|الخطافات]].  
=== ملخص ===
 
الأمر <code>cordova compile</code> هو جزء من واحد أوامر البناء في كوردوفا. إلا أنه يكتفي بتنفيذ خطوة التصريف (compilation)، دون القيام بالتحضير (prepare). من الشائع استدعاء <code>cordova build</code> بدلاً من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد (extending) باستخدام [[Cordova/hooks|الخطافات]].  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova build [<platform> [...]]
<syntaxhighlight lang="shell">cordova build [<platform> [...]]
     [--debug|--release]
     [--debug|--release]
     [--device|--emulator|--target=<targetName>]
     [--device|--emulator|--target=<targetName>]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
 
لمزيد من التفاصيل، انظر أوامر البناء أدناه.


== الأمر cordova build ==
لمزيد من التفاصيل، انظر أمر البناء (الأمر <code>cordova build</code> ) أدناه.


=== ملخص ===  
== الأمر <code>cordova build</code> ==
هذا الأمر هو اختصار للأمرين <code>cordova prepare</code> + <code>cordova compile</code> في جميع المنصات المحددة، إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة.


هذا الأمر هو اختصار للتعبيرين <code>cordova prepare</code> + <code>cordova compile</code> لجميع المنصات المحددة. إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة.
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova build [<platform> [...]]
<syntaxhighlight lang="shell">cordova build [<platform> [...]]
     [--debug|--release]
     [--debug|--release]
     [--device|--emulator]
     [--device|--emulator]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!الخيار
!الخيار
سطر 510: سطر 472:
|-
|-
|‎<code><platform> ‎[..]‎</code>
|‎<code><platform> ‎[..]‎</code>
|اسم(اء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات.
|اسم(أسماء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات.
|-
|-
|‎<code>--debug</code>
|‎<code>--debug</code>
|القيام ببناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها.  
|تنفيذ بناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها.  
|-
|-
|‎<code>--release</code>
|‎<code>--release</code>
سطر 519: سطر 481:
|-
|-
|‎<code>--device</code>
|‎<code>--device</code>
|البناء لأجل لجهاز
|بناء المشروخ لجهاز.
|-
|-
|‎<code>--emulator</code>
|‎<code>--emulator</code>
سطر 528: سطر 490:


استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
|-
|‎<code>--browserify</code>
|تصريف (Compile) ملفات [[JavaScript|جافاسكريبت]] الخاصة بالإضافة  في وقت البناء باستخدام browserify بدلا من runtime.
|-
|-
|<code><platformOpts></code>
|<code><platformOpts></code>
سطر 539: سطر 498:


* البناء لمنصتي <code>android</code> و <code>windows</code> في الوضع المُصحح <code>debug</code> لأجل النشر على الجهاز:  
* البناء لمنصتي <code>android</code> و <code>windows</code> في الوضع المُصحح <code>debug</code> لأجل النشر على الجهاز:  
<syntaxhighlight lang="console">cordova build android windows --debug --device‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova build android windows --debug --device‎</syntaxhighlight>
* البناء من أجل المنصة <code>android</code> في وضع الإطلاق <code>release</code> مع استخدام إعدادات البناء المحددة:  
* البناء من أجل المنصة <code>android</code> في وضع الإطلاق <code>release</code> مع استخدام إعدادات البناء المحددة:  
<syntaxhighlight lang="console">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:  
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:  
<syntaxhighlight lang="console">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
 
</syntaxhighlight>
== الأمر cordova run ==
 
=== ملخص ===


يقوم هذا الأمر بتحضير، وبناء ونشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيتم استخدامه، ما لم يكن هناك محاكٍ مؤهل يعمل سلفًا.  
== الأمر <code>cordova run</code> ==
يحضِّر هذا الأمر ويبني وينشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيتم استخدامه، ما لم يكن هناك محاكٍ مؤهل يعمل مسبقًا.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova run [<platform> [...]]
<syntaxhighlight lang="shell">cordova run [<platform> [...]]
     [--list | --debug | --release]
     [--list | --debug | --release]
     [--noprepare] [--nobuild]
     [--noprepare] [--nobuild]
     [--device|--emulator|--target=<targetName>]
     [--device|--emulator|--target=<targetName>]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!الخيار
!الخيار
سطر 563: سطر 519:
|-
|-
|<code>‎<platform> ‎‎[..]‎</code>
|<code>‎<platform> ‎‎[..]‎</code>
|اسم(اء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات.
|اسم(أسماء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات.
|-
|-
|‎<code>--list</code>
|‎<code>--list</code>
سطر 569: سطر 525:
|-
|-
|<code>‎--debug</code>
|<code>‎--debug</code>
|يقوم هذا الخيار بنشر بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية ‎<code>--release</code>
|يقوم هذا الخيار بنشر (Deploy) بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية ‎<code>--release</code>.
|-
|-
|‎<code>--release</code>
|‎<code>--release</code>
|نشر بناءٍ إطلاقي (release build)
|نشر بناءٍ إطلاقي (release build).
|-
|-
|<code>‎--device</code>
|<code>‎--device</code>
|البناء لأجل لجهاز
|بناء المشروع لجهاز.
|-
|-
|‎<code>--noprepare</code>
|‎<code>--noprepare</code>
|تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده)
|تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده).
|-
|-
|<code>‎--nobuild</code>
|<code>‎--nobuild</code>
|تخطي مرحلة البناء  
|تخطي مرحلة البناء.
|-
|-
|‎<code>--device</code>
|‎<code>--device</code>
|النشر إلى الجهاز  
|النشر إلى الجهاز.
|-
|-
|‎<code>--emulator</code>
|‎<code>--emulator</code>
|النشر إلى المحاكي
|النشر إلى المحاكي.
|-
|-
|‎<code>--target</code>
|‎<code>--target</code>
|نشر إلى محاكي أو جهاز محدد. استخدم الراية ‎<code>--list</code> لعرض الخيارات المستهدفة  
|نشر إلى محاكي أو جهاز محدد. استخدم الراية ‎<code>--list</code> لعرض الخيارات المستهدفة.
|-
|-
|‎<code>--buildConfig=<configFile>‎</code>
|‎<code>--buildConfig=<configFile>‎</code>
سطر 596: سطر 552:


استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
|-
|‎<code>--browserify</code>
|تصريف (Compile) ملفات [[JavaScript|جافاسكريبت]] الخاصة بالإضافة في وقت البناء باستخدام browserify بدلا من runtime.
|-
|-
|‎<code><platformOpts>‎</code>
|‎<code><platformOpts>‎</code>
سطر 607: سطر 560:


* تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة <code>android</code> المسمى <code>Nexus_5_API_23_x86</code>. مع استخدام إعدادات البناء المحددة عند التشغيل:  
* تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة <code>android</code> المسمى <code>Nexus_5_API_23_x86</code>. مع استخدام إعدادات البناء المحددة عند التشغيل:  
<syntaxhighlight lang="console">cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86
</syntaxhighlight>
* تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:  
* تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:  
<syntaxhighlight lang="console">cordova run android --nobuild‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova run android --nobuild‎</syntaxhighlight>
* تشغيل بناء مصحح لمشروع كوردوفا الحالي على جهاز <code>ios</code>:  
* تشغيل بناء مصحَّح لمشروع كوردوفا الحالي على جهاز <code>ios</code>:  
<syntaxhighlight lang="console">cordova run ios --device‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova run ios --device‎</syntaxhighlight>
* تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:  
* تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:  
<syntaxhighlight lang="console">cordova run ios --list‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova run ios --list‎</syntaxhighlight>


== الأمر <code>cordova emulate</code> ==
== الأمر <code>cordova emulate</code> ==
 
هذا الأمر هو اختصار للأمر <code>cordova run --emulator</code>. ويطلق المحاكي بدلًا من الجهاز. انظر  قسم الأمر <code>cordova run</code> أعلاه لمزيد من التفاصيل.  
=== ملخص ===
 
هذا الأمر هو اختصار للتعبير <code>cordova run --emulator</code>. ويطلق المحاكي بدلًا من الجهاز. انظر  قسم الأمر <code>cordova run</code> أعلاه لمزيد من التفاصيل.  


== الأمر <code>cordova clean</code> ==
== الأمر <code>cordova clean</code> ==
=== ملخص ===
ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة.  
ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova clean [<platform> [...]]‎</syntaxhighlight>  
<syntaxhighlight lang="shell">cordova clean [<platform> [...]]‎</syntaxhighlight>  
=== مثال ===  
=== أمثلة ===  
*
*


* تنظيف عناصر البناء الخاصة بالمنصة <code>android</code>:  
* تنظيف عناصر البناء الخاصة بالمنصة <code>android</code>:  
<syntaxhighlight lang="console">cordova clean android‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova clean android‎</syntaxhighlight>


== الأمر <code>cordova requirements</code> ==
== الأمر <code>cordova requirements</code> ==
=== ملخص ===
هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة <code>0</code> عند الخروج، وإلا فستعاد قيمة غير معدومة.  
هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة <code>0</code> عند الخروج، وإلا فستعاد قيمة غير معدومة.  


يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة.  
يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova requirements android‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova requirements android‎</syntaxhighlight>


== الأمر <code>cordova info</code> ==
== الأمر <code>cordova info</code> ==
=== ملخص ===
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا <code>info.txt</code> في قاعدة المشروع.  
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا <code>info.txt</code> في قاعدة المشروع.  
===الصياغة===  
===الصياغة===  
سطر 653: سطر 595:


== الأمر <code>cordova serve</code> ==
== الأمر <code>cordova serve</code> ==
=== ملخص ===
يشغل هذا الأمر خادمًا محليًا من المجلد <code>www/assets</code> باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code><nowiki>http://HOST_IP:PORT/PLATFORM/www</nowiki></code>  
يشغل هذا الأمر خادمًا محليًا من المجلد <code>www/assets</code> باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code><nowiki>http://HOST_IP:PORT/PLATFORM/www</nowiki></code>  
===الصياغة===  
===الصياغة===  
سطر 661: سطر 600:


== الأمر <code>cordova telemetry</code> ==
== الأمر <code>cordova telemetry</code> ==
=== ملخص ===
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).  
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova telemetry [STATE]‎</syntaxhighlight>  
<syntaxhighlight lang="shell">cordova telemetry [STATE]‎</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!الخيار
!الخيار
سطر 679: سطر 615:
=== تفاصيل ===  
=== تفاصيل ===  


يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI (التكامل المستمر continuous integration)، يمكن ضبط متغير البيئة <code>CI</code>، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية ‎<code>--no-telemetry</code>.  
يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة <code>CI</code>، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية ‎<code>--no-telemetry</code>.  
===أمثلة===  
===أمثلة===  
<syntaxhighlight lang="console">cordova telemetry on
<syntaxhighlight lang="shell">cordova telemetry on
cordova telemetry off
cordova telemetry off
cordova build --no-telemetry‎</syntaxhighlight>  
cordova build --no-telemetry‎</syntaxhighlight>  
سطر 688: سطر 624:


== الأمر <code>cordova help</code> ==
== الأمر <code>cordova help</code> ==
=== ملخص ===
يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد.  
يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova help [command]
<syntaxhighlight lang="shell">cordova help [command]
cordova [command] -h
cordova [command] -h
cordova -h [command]‎</syntaxhighlight>
cordova -h [command]‎ </syntaxhighlight>


== الأمر <code>cordova config</code> ==
== الأمر <code>cordova config</code> ==
 
هذا الأمر يعيّن، و ويجلب، ويحذف، و يُعدّل ويُدرج قائمة الخيارات العامة لكوردوفا.  
=== ملخص ===
 
هذا الأمر يعيّن، و يحصّل، ويحذف، و يعدل ويُدرج قائمة الخيارات العامة لكوردوفا.  
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="console">cordova config ls
<syntaxhighlight lang="shell">cordova config ls
cordova config edit
cordova config edit
cordova config set <key> <value>
cordova config set <key> <value>
cordova config get <key>
cordova config get <key>
cordova config delete <key></syntaxhighlight>  
cordova config delete <key></syntaxhighlight>  
===أمثلة===  
===أمثلة===  
<syntaxhighlight lang="console">cordova config set autosave false
<syntaxhighlight lang="shell">cordova config set autosave false
cordova config set browserify false‎</syntaxhighlight>
</syntaxhighlight>


== انظر أيضا ==
== انظر أيضًا ==
* صفحة ا<nowiki/>[[Cordova/plugin ref|لملف Plugin.xml.]]
* ا<nowiki/>[[Cordova/plugin ref|لملف Plugin.xml.]]


* صفحة [[Cordova/config ref|الملف Config.xml]]
* [[Cordova/config ref|الملف Config.xml]]


==مصادر==
==مصادر==
*[https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html صفحة Cordova Command-line-interface (CLI) Reference في توثيق كوردوفا الرسمي.]
*[https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html صفحة Cordova Command-line-interface (CLI) Reference في توثيق كوردوفا الرسمي.]

المراجعة الحالية بتاريخ 10:43، 2 ديسمبر 2020

يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها.

الصيغة العامة لأوامر واجهة سطر الأوامر هي بالشكل التالي:

cordova <command> [options] -- [platformOpts]

لائحة الأوامر العامة

يمكن استخدام الأوامر التالية في أي وقت.

الأمر الشرح
create إنشاء مشروع.
help الحصول على المساعدة بخصوص أمرٍ ما.
telemetry تفعيل مجموعة القياس (telemetry collection) أو إيقافها.
config تعيين، وجلب، وحذف، وتعديل وسرد قائمة الخيارات العامة لكوردوفا.

لائحة أوامر المشروع

تُدعَم الأوامر التالية عندما يكون مجلد العمل الحالي مشروعًا صالحًا.

الأمر الشرح
info يولد هذا الأمر معلومات عن المشروع.
requirements يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة.
platform إدارة منصات المشروع.
plugin إدارة إضافات المشروع.
prepare نسخ الملفات في المنصة (أو المنصات) لأجل البناء.
compile بناء المنصة(ات).
clean تنظيف المشروع من آثار البناء.
run تشغيل المشروع (بما في ذلك التحضير prepare والتصريف compile).
serve تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير prepare).

خيارات شائعة

تنطبق الخيارات التالية على جميع أوامر واجهة سطر الأوامر في كوردوفا.

الأمر الشرح
‎-d أو ‎‎ ‎--verbose يظهر معلومات أكثر تفصيلًا على الصدفة (shell). يمكنك أيضًا الاشتراك في الحدثين log و warn إذا كنت تستخدم cordova-cli كوحدة عقدية (node module) عبر استدعاء cordova.on('log', function() {})‎ أو cordova.on('warn', function() {})‎.
‎-v أو ‎--version‎ طباعة إصدار cordova-cli المثبت.
--no-update-notifier سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلًا من ذلك إضافة التعبير ‎"optOut": true إلى الملف ‎~/.config/configstore/update-notifier-cordova.json أو تعيين متغير البيئة NO_UPDATE_NOTIFIER إلى أية قيمة (انظر التفاصيل في توثيق update-notifier).
--nohooks منع تنفيذ الخطافات (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل).
--no-telemetry تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي.

خيارات مخصوصة بالمنصات (Platform-specific options)

بعض الأوامر لها خيارات (platformOpts) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر مع الفاصل "--"، والذي يوقف تحليل (parsing) الأمر في الوحدة cordova-lib ويُمرر باقي الخيارات للمنصات لأجل تحليلها.

يوضح المثال التالي كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع إضافة الكاميرا وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار ‎--keystore:

# إنشاء مشروع كوردوفا
cordova create myApp com.myCompany.myApp myApp
cd myApp
# يضيف هذا الأمر إلى المشروع إضافة الكاميرا ويسجل ذلك في الملفين
# config.xml و package.json
cordova plugin add cordova-plugin-camera
# يضيف هذا الأمر إلى المشروع إضافة منصة أندرويد ويسجل ذلك في الملفين
# config.xml و package.json
cordova platform add android
# يتحقق هذا الأمر مما إذا كان النظام مُعدًا لبناء منصة أندرويد
cordova requirements android
# يبني أندرويد ويحذف المخرجات الزائدة
cordova build android --verbose
# يشغل المشروع على منصة أندرويد
cordova run android
# يقوم هذا الأمر بالبناء لأجل منصة أندرويد في وضعية الإطلاق مع معاملات التوقيع المحددة
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎

الأمر cordova create

ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.

الصياغة

cordova create path [id [name [config]]] [options]
القيمة الشرح
path تنشئ مجلدًا، ويُشترط ألا يكون موجودًا مسبقًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه.
id القيمة الافتراضية: io.cordova.hellocordova

يمثِّل مُعرِّفًا لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية id في العنصر widget في الملف config.xml. يمكن تغيير هذه القيمة، ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء حزم جافا. لذا يوصى بتحديد قيمة مناسبة.

name القيمة الافتراضية: HelloCordova

عنوان العرض (display title) الخاص بالتطبيق، والذي يرتبط بالعنصر name في الملف config.xml. يمكن تغيير هذا ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء أصناف جافا. القيمة الافتراضية هي HelloCordova، ولكن يوصى بتحديد قيمة مناسبة.

config سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف ‎<path>/.cordova/config.json.

الخيارات التي يمكن استعمالها

الأمر الشرح
‎--template استخدام قالب مخصصٍ محلي، أو من مُدير الحُزم NPM، أو من مستودع GitHub.
‎--copy-from\‎ ‎--src
‎--link-to رابط رمزي (Symlink) يشير إلى المجلد www المحدد دون إنشاء نسخة منه.

بنية مجلد المشروع

تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:

myapp/
|-- config.xml
|-- hooks/
|-- merges/
| | |-- android/
| | |-- windows/
| | |-- ios/
|-- www/
|-- platforms/
| |-- android/
| |-- windows/
| |-- ios/
|-- plugins/
  |--cordova-plugin-camera/

الملف Config.xml

يحتوي هذا الملف على إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر توثيق الملف Config.xml.

المجلد www‎

يحتوي المجلد www/‎ على أصول الويب (web artifacts) الخاصة بالمشروع، مثل ملفات html. و cs. و js. كمطور لتطبيقات كوردوفا، فإنَّ معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر cordova prepare إلى المجلد www الخاص بكل منصة على حدة. ويعاد إنتاج المجلد المصدري www داخل المجلد الفرعي لكل منصة، مثلًا في المجلدين platforms/ios/www أو platforms/android/assets/www.

نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري www، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليك إضافة المجلد المصدري www جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.

المجلد platforms‎

يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك.

ملاحظة: عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد /platform/، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق يسمح بذلك. الملفات الموجودة في هذا المجلد ستستبدل (overwritten) باستمرار عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.

المجلد plugins‎

الإضافات التي أُضيفت للمشروع ستُستخلص أو تُتسخ في هذا المجلد.

المجلد hooks

قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.

راجع صفحة الخطافات لمزيد من المعلومات.

المجلد merges‎

يتم تضمين أصول الويب الخاصة بالمنصة (ملفات HTML و CSS و JavaScript) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر prepare إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد merges/‎ محل الملفات المطابقة في المجلد www/‎ الخاص بالمنصة المعنية.

المثال التالي يفترض هيكل المشروع التالي:

merges/
|-- ios/
| -- app.js
|-- android/
| -- android.js
www/
-- app.js‎

بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين app.js و android.js. أما تطبيق iOS فلن يحتوي إلا على الملف app.js الموجود في المسار merges/ios/app.js، وسيستبدل (override) الملف app.js الموجود في المجلد www/‎.

إداة الإصدارات

من المستحسن عدم إدراج المجلدين platforms/‎ و plugins/ ‎في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. ستُحفَظ المنصة والإضافة خاصتك في الملفين config.xml و package.json تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر cordova prepare.

أمثلة

  • إنشاء مشروع كوردوفا في المجلد myapp باستخدام المعرّف واسم العرض المحددين:
cordova create myapp com.mycompany.myteam.myapp MyApp‎
  • إنشاء مشروع كوردوفا مع وصلة رمزي (symlink) إلى مجلد www موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو إن كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:
cordova create myapp --link-to=../www‎

الأمر platform command

يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها.

تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع.

الصياغة

cordova {platform | platforms} [
    add <platform-spec> [...] {--save | link=<path> } |
    {remove | rm}  platform [...] {--save}|
    {list | ls}  |
    check |
    save |
    update ]
أوامر فرعية الخيار الشرح
add <platform-spec> [...]‎ إضافة منصات محددة.
--nosave عدم حفظ <platform-spec> في الملفين config.xml و package.json بعد تثبيتها باستخدام الوسم <engine>.
--link=<path>‎ عندما يكون <platform-spec> مسارًا محليًا، فسينشئ هذا الأمر الفرعي رابطًا لمكتبة المنصة مباشرةً بدلًامن إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة).
remove <platform>‎[...]‎ إزالة المنصات المحددة.
--nosave عدم حذف المنصات المحددة من الملفين config.xml و package.json بعد إزالتها.
update platform[‎...]‎ تحديث المنصات المحددة.
--save تحديث الإصدار المحدد في الملف config.xml.
list سرد جميع المنصات المثبتة والمتاحة في قائمة.
check إدارج المنصات التي يمكن تحديثها عبر واجهة سطر الأوامر عبر الأمر platform update.
save حفظ العنصر <platform-spec> الخاص بجميع المنصات المضافة إلى الملف config.xml.

تحديد المنصات (Platform-spec)

هناك عدة طرق لتحديد منصة معينة:

<platform-spec> : platform[@version] | path | url[#commit-ish]‎
القيمة الشرح
platform اسم المنصة، على سبيل المثال، android، و ios، و windows ...إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.
version مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (SemVer، اختصار للكلميتن Semantic Versioning).
path مسار إلى المجلد أو الملف tarball الذي يحتوي المنصة.
url عنوان لمستودع git أو لملف tarball الذي يحتوي على منصة.
commit-ish مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "master".

المنصات المدعومة

أمثلة

  • إضافة إصدار مثبّت (pinned version) من المنصتين android و ios، وحفظ الإصدار الذي تم تنزيله في الملفين config.xml و package.json:
cordova platform add android ios‎
  • إضافة منصة أندرويد مع الإصدار SemVer ^ 5.0.0 وحفظه في الملفين config.xml و package.json:
cordova platform add android@^5.0.0‎
  • إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم 4.0.0:
cordova platform add https://github.com/myfork/cordova-android.git#4.0.0‎
  • إضافة منصة باستخدام مجلد محلي باسم android:
cordova platform add ../android‎
  • إضافة منصة باستخدام ملف tarball المحدد:
cordova platform add ../cordova-android.tgz‎
  • إزالة منصة android من المشروع ومن الملفين config.xml و package.json:
cordova platform rm android‎
  • إزالة منصة android من المشروع دون إزالتها من الملفين config.xml و package.json:
cordova platform rm android --nosave‎
  • سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:
cordova platform ls‎
  • حفظ إصدارات جميع المنصات المضافة حاليًا إلى المشروع في الملفين config.xml و package.json
cordova platform save‎

الأمر cordova plugin

يُمكّن هذا الأمر من إدارة إضافات المشروع.

الصياغة

cordova {plugin | plugins} [
    add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
    {remove | rm} {<pluginid> | <name>} --save |
    {list | ls} |
    save |
]
أوامر فرعية الخيار الشرح
add <plugin-spec> [...]‎ يضيف هذا الأمر إضافات محددة.
--searchpath <directory>‎ عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة nix* أو "؛" في ويندوز.
--noregistry لا تبحث في السجل عن الإضافات.
--link عند التثبيت من مسار محلي، فسيتم إنشاء وصلة رمزي (symbolic link) بدلًا من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات.
--nosave عدم حفظ <plugin-spec> كجزء من العنصر plugin في الملفين config.xml و package.json.
--force تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.
remove`‎ ‎‎‎‎`[...]‎
--nosave عدم إزالة الإضافة المحددة من الملفين config.xml و package.json
list سرد قائمة من الإضافات المثبتة حاليًا.
save حفظ العنصر <plugin-spec> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع.

تحديد الإضافات (Plugin-spec)

هناك عدة طرق لتحديد الإضافة:

<plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir]
القيمة الشرح
scope نطاق الإضافة المنشورة على هيئة حزمة npm نطاقية (scoped npm package).
plugin مُعرّف (id) الإضافة (في سجل npm أو في ‎--searchPath).
version مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (semver).
directory المجلد الذي يحتوي على الملف plugin.xml.
url رابط مستودع git الذي يحتوي الملف plugin.xml.
commit-ish مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "master".

خوارزمية استبيان الإضافات

عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على استبيان (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب ‎الأسبقية):

  • قيمة العنصر plugin-spec الوارد في الأمر (على سبيل المثال cordova plugin add pluginID@version).
  • قيمة plugin-spec المحفوظة في الملفين config.xml و package.json (أي إن سبق وأضيفت الإضافة بدون الخيار ‎--nosave).
  • اعتبارًا من الإصدار 6.1 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد ارتباطاتها في الملف package.json).
  • أحدث إصدارات الإضافة المنشورة في npm..

أمثلة

  • إضافة cordova-plugin-camera و cordova-plugin-file إلى المشروع، وحفظه في الملفين config.xml و package.json. واستخدام المجلد ‎../plugins للبحث عن الإضافات.
cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins
  • إضافة cordova-plugin-camera مع الإصدار semver ‏‎^2.0.0 وحفظه في الملفين config.xml و package.json:
cordova plugin add cordova-plugin-camera@^2.0.0‎
  • يضيف هذا المثال الإضافة من المجلد المحلي المحدد:
cordova plugin add ../cordova-plugin-camera‎
  • يضيف هذا المثال الإضافة من ملف tarball المحدد:
cordova plugin add ../cordova-plugin-camera.tgz‎
  • إزالة الإضافة من المشروع ومن الملفين config.xml و package.json:
cordova plugin rm camera‎
  • إزالة الإضافة من المشروع، دون إزالتها من الملفين config.xml أو package.json:
cordova plugin rm camera --nosave‎
  • إدارج قائمة من جميع الإضافات المثبتة في المشروع:
cordova plugin ls‎

الإضافات المُتعارضة

قد يحدث تعارض بين الإضافات (Conflicting plugins) في حال استخدَمت الإضافات المضافة الوسم edit-config في الملف plugin.xml الخاص بها. يُمكّن الوسم edit-config الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.

يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم XML. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تكتب إحدى الإضافات فوق (overwrite) التغييرات التي أجرتها إضافة أخرى عبر الوسم edit-config.

سيُطلق خطأ عند رصد تعارضٍ في edit-config، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض edit-config هو إجراء تغييرات في الملف plugin.xml الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎--force، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.

ارجع إلى دليل plugin.xml لإدارة edit-config وحل التعارضات، ولأجل الحصول على الأمثلة.

الأمر cordova prepare

يحوِّل هذا الأمر البيانات الوصفية في الملف config.xml إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK.

الصياغة

cordova prepare [<platform> [..]]

الخيارات التي يمكن استعمالها

الخيار الشرح
<platform> [..]‎ اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.

الأمر cordova compile

الأمر cordova compile هو جزءٌ من أوامر البناء في كوردوفا. إلا أنه يكتفي بتنفيذ خطوة التصريف (compilation) فقط، دون القيام بالتحضير (prepare). من الشائع استدعاء cordova build بدلًا من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد (extending) باستخدام الخطافات.

الصياغة

cordova build [<platform> [...]]
    [--debug|--release]
    [--device|--emulator|--target=<targetName>]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]

لمزيد من التفاصيل، انظر أمر البناء (الأمر cordova build ) أدناه.

الأمر cordova build

هذا الأمر هو اختصار للأمرين cordova prepare + cordova compile في جميع المنصات المحددة، إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة.

الصياغة

cordova build [<platform> [...]]
    [--debug|--release]
    [--device|--emulator]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]
الخيار الشرح
<platform> ‎[..]‎ اسم(أسماء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات.
--debug تنفيذ بناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها.
--release تنفيذ بناء الإطلاق (release build). هذا يترجم عادة إلى وضع الإطلاق (release mode) للمنصة التي يجري بناؤها.
--device بناء المشروخ لجهاز.
--emulator البناء لأجل المحاكي. قد تختلف بنية المنصة لمحاكيات الجهاز Vs.
--buildConfig=<configFile>‎ القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.

استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف build.json لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.

<platformOpts> لتوفير خيارات مخصوصة بمنصة معينة، فيجب عليك إدارج هذا الخيار بعد الفاصل --. راجع مستندات دليل المنصة لمزيد من التفاصيل.

أمثلة

  • البناء لمنصتي android و windows في الوضع المُصحح debug لأجل النشر على الجهاز:
cordova build android windows --debug --device‎
  • البناء من أجل المنصة android في وضع الإطلاق release مع استخدام إعدادات البناء المحددة:
cordova build android --release --buildConfig=..\myBuildConfig.json‎
  • البناء للمنصة android في وضع الإطلاق (release)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey

الأمر cordova run

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

الصياغة

cordova run [<platform> [...]]
    [--list | --debug | --release]
    [--noprepare] [--nobuild]
    [--device|--emulator|--target=<targetName>]
    [--buildConfig=<configfile>]
    [-- <platformOpts>]
الخيار الشرح
‎<platform> ‎‎[..]‎ اسم(أسماء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات.
--list يعيد هذا الخيار قائمة تضم الأهداف (targets) المتاحة. ويعرض أهداف النشر الخاصة بالجهاز والمحاكي ما لم يتم تحديدها
‎--debug يقوم هذا الخيار بنشر (Deploy) بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية ‎--release.
--release نشر بناءٍ إطلاقي (release build).
‎--device بناء المشروع لجهاز.
--noprepare تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده).
‎--nobuild تخطي مرحلة البناء.
--device النشر إلى الجهاز.
--emulator النشر إلى المحاكي.
--target نشر إلى محاكي أو جهاز محدد. استخدم الراية ‎--list لعرض الخيارات المستهدفة.
--buildConfig=<configFile>‎ القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.

استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف build.json لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.

<platformOpts>‎ لتوفير خيارات مخصوصة بمنصة محددة، فيجب عليك إدارج هذا الخيار بعد الفاصل --. راجع مستندات دليل المنصة لمزيد من التفاصيل.

أمثلة

  • تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة android المسمى Nexus_5_API_23_x86. مع استخدام إعدادات البناء المحددة عند التشغيل:
cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86
  • تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة android باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:
cordova run android --nobuild‎
  • تشغيل بناء مصحَّح لمشروع كوردوفا الحالي على جهاز ios:
cordova run ios --device‎
  • تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:
cordova run ios --list‎

الأمر cordova emulate

هذا الأمر هو اختصار للأمر cordova run --emulator. ويطلق المحاكي بدلًا من الجهاز. انظر قسم الأمر cordova run أعلاه لمزيد من التفاصيل.

الأمر cordova clean

ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة.

الصياغة

cordova clean [<platform> [...]]

أمثلة

  • تنظيف عناصر البناء الخاصة بالمنصة android:
cordova clean android‎

الأمر cordova requirements

هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة 0 عند الخروج، وإلا فستعاد قيمة غير معدومة.

يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة.

الصياغة

cordova requirements android‎

الأمر cordova info

يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا info.txt في قاعدة المشروع.

الصياغة

cordova info‎

الأمر cordova serve

يشغل هذا الأمر خادمًا محليًا من المجلد www/assets باستخدام المنفذ port المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: http://HOST_IP:PORT/PLATFORM/www

الصياغة

cordova serve [port]‎

الأمر cordova telemetry

هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).

الصياغة

cordova telemetry [STATE]
الخيار الشرح
on تشغيل مجموعة القياس عن بعد (telemetry collection).
off تعطيل مجموعة القياس عن بعد (telemetry collection).

تفاصيل

يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة CI، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية ‎--no-telemetry.

أمثلة

cordova telemetry on
cordova telemetry off
cordova build --no-telemetry‎

لمزيد من التفاصيل، انظر صفحة إدارة الخصوصية.

الأمر cordova help

يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد.

الصياغة

cordova help [command]
cordova [command] -h
cordova -h [command]

الأمر cordova config

هذا الأمر يعيّن، و ويجلب، ويحذف، و يُعدّل ويُدرج قائمة الخيارات العامة لكوردوفا.

الصياغة

cordova config ls
cordova config edit
cordova config set <key> <value>
cordova config get <key>
cordova config delete <key>

أمثلة

cordova config set autosave false

انظر أيضًا

مصادر