الفرق بين المراجعتين ل"Cordova/cli"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(تحديث)
 
(15 مراجعة متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude>
 
<noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude>
 
[[تصنيف: Cordova]]
 
[[تصنيف: Cordova]]
[[تصنيف: CLI]]
+
يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها.
قرطبة سطر الأوامر واجهة (CLI) مرجع
 
الصياغة
 
<syntaxhighlight lang="console">cordova <command> [options] -- [platformOpts]‎</syntaxhighlight>
 
  
لائحة الأوامر العامة
+
الصيغة العامة لأوامر واجهة سطر الأوامر هي بالشكل التالي:
 +
<syntaxhighlight lang="shell">cordova <command> [options] -- [platformOpts]‎</syntaxhighlight>
  
هذه الأوامر متوفرة في جميع الأوقات.  
+
== لائحة الأوامر العامة ==
الأمر  
+
يمكن استخدام الأوامر التالية في أي وقت.
الوصف
+
{| class="wikitable"
create  
+
!الأمر
انشاء مشروع  
+
!الشرح
help  
+
|-
الحصول على مساعدة بخصوص الأمر
+
|<code>create</code>
telemetry  
+
|إنشاء مشروع.
تفعيل مجموعة القياس (telemetry collection) أو إيقافها  
+
|-
config  
+
|<code>help</code>
تعيين، و تحصيل، و حذف، و تعديل وسرد قائمة خيارات كوردوفا العامة  
+
|الحصول على المساعدة بخصوص أمرٍ ما.
 +
|-
 +
|<code>telemetry</code>
 +
|تفعيل مجموعة القياس (telemetry collection) أو إيقافها.
 +
|-
 +
|<code>config</code>
 +
|تعيين، وجلب، وحذف، وتعديل وسرد قائمة الخيارات العامة لكوردوفا.
 +
|}
  
لائحة أوامر المشروع  
+
== لائحة أوامر المشروع ==
 +
تُدعَم الأوامر التالية عندما يكون مجلد العمل الحالي مشروعًا صالحًا.
 +
{| class="wikitable"
 +
!الأمر
 +
!الشرح
 +
|-
 +
|<code>info</code>
 +
|يولد هذا الأمر معلومات عن المشروع.
 +
|-
 +
|<code>requirements</code>
 +
|يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة.
 +
|-
 +
|<code>platform</code>
 +
|إدارة منصات المشروع.
 +
|-
 +
|<code>plugin</code>
 +
|إدارة إضافات المشروع.
 +
|-
 +
|<code>prepare</code>
 +
|نسخ الملفات في المنصة (أو المنصات) لأجل البناء.
 +
|-
 +
|<code>compile</code>
 +
|بناء المنصة(ات).
 +
|-
 +
|<code>clean</code>
 +
|تنظيف المشروع من آثار البناء.
 +
|-
 +
|<code>run</code>
 +
|تشغيل المشروع (بما في ذلك التحضير <code>prepare</code> والتصريف <code>compile</code>).
 +
|-
 +
|<code>serve</code>
 +
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير <code>prepare</code>).
 +
|}
  
هذه الأوامر مدعومة عندما يكون مجلد العمل الحالي عبارة عن مشروع صالح لكوردوفا.  
+
== خيارات شائعة ==
الأمر
+
تنطبق الخيارات التالية على جميع أوامر واجهة سطر الأوامر في كوردوفا.
الوصف
+
{| class="wikitable"
info
+
!الأمر    
يولد هذا الأمر معلومات عن المشروع
+
!الشرح
requirements
+
|-
يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة
+
|<code>‎-d</code> أو <code>‎‎ ‎--verbose</code>
platform
+
|يظهر معلومات أكثر تفصيلًا على الصدفة (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>.
إدارة منصات المشاريع
+
|-
plugin
+
|<code>‎-v أو ‎--version‎</code> 
إدارة إضافات المشروع
+
|طباعة إصدار <code>cordova-cli</code> المثبت.
إعداد
+
|-
نسخ الملفات في المنصة (أو المنصات) لأجل البناء
+
|<code>--no-update-notifier</code>
compile
+
|سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلًا من ذلك إضافة التعبير ‎<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]).
بناء المنصة (ات)
+
|-
clean
+
|<code>--nohooks</code>
تنظيف مشروع من آثار البناء
+
|منع تنفيذ [[Cordova/hooks|الخطافات]] (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل).
run
+
|-
تشغيل المشروع (بما في ذلك prepare && compile)  
+
|‎<code>--no-telemetry</code>
serve
+
|تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي.
تشغيل المشروع مع خادم ويب محلي (بما في ذلك prepare)  
+
|}
  
خيارات شائعة
+
== خيارات مخصوصة بالمنصات (Platform-specific options) ==
 
+
بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر مع الفاصل "<code>--</code>"، والذي يوقف تحليل (parsing) الأمر في الوحدة <code>cordova-lib</code> ويُمرر باقي الخيارات للمنصات لأجل تحليلها.
تنطبق هذه الخيارات على جميع أوامر واجهة سطر الأوامر في كردوفا.
 
الخيارات
 
الوصف
 
‎-d أو‎ --verbose
 
تقوم بإخراج معلومات أكثر إلى الصدفة (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 أو - الإصدار
 
طباعة إصدار <code>cordova-cli</code> المثبت.
 
--no-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 docs]).
 
--nohooks
 
منع تنفيذ الخطافات (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل)
 
--no-telemetry
 
تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بلأمر الحالي.
 
 
 
خيارات مخصوصة بالمنصات
 
 
 
بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصة معينة. يمكن استخدامها في واجهة سطر الأوامر في كوردوفا مع الفاصل "--"، والذي يوقف تحليل (parsing) الأمر في الوحدة cordova-lib ويُمرر باقي الخيارات للمنصات لأجل تحليلهاا.
 
 
 
 
 
 
 
أمثلة:
 
 
*
 
*
  
يوضح هذا المثال كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع الإضافة <code>camera</code> وتشغيله على منصة <code>android</code>. يمكنك تحديد خيارات مخصوصة بمنصة معينة مثل <code>--keystore</code>:  
+
يوضح المثال التالي كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع إضافة [[Cordova/cordova plugin camera|الكاميرا]] وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار ‎<code>--keystore</code>:  
<syntaxhighlight lang="console"># Create a cordova project
+
<syntaxhighlight lang="shell"># إنشاء مشروع كوردوفا
 
cordova create myApp com.myCompany.myApp myApp
 
cordova create myApp com.myCompany.myApp myApp
 
cd myApp
 
cd myApp
# Add camera plugin to the project and remember that in config.xml & package.json.
+
# يضيف هذا الأمر إلى المشروع إضافة الكاميرا ويسجل ذلك في الملفين
 +
# config.xml و package.json
 
cordova plugin add cordova-plugin-camera
 
cordova plugin add cordova-plugin-camera
# Add camera plugin to the project and remember that in config.xml and package.json.
+
# يضيف هذا الأمر إلى المشروع إضافة منصة أندرويد ويسجل ذلك في الملفين
cordova plugin add cordova-plugin-camera
+
# config.xml و package.json
# Add android platform to the project and remember that in config.xml & package.json.
 
 
cordova platform add android
 
cordova platform add android
# Check to see if your system is configured for building android platform.
+
# يتحقق هذا الأمر مما إذا كان النظام مُعدًا لبناء منصة أندرويد
 
cordova requirements android
 
cordova requirements android
# Build the android and emit verbose logs.
+
# يبني أندرويد ويحذف المخرجات الزائدة
 
cordova build android --verbose
 
cordova build android --verbose
# Run the project on the android platform.
+
# يشغل المشروع على منصة أندرويد
 
cordova run android
 
cordova run android
# Build for android platform in release mode with specified signing parameters.
+
# يقوم هذا الأمر بالبناء لأجل منصة أندرويد في وضعية الإطلاق مع معاملات التوقيع المحددة
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>  
+
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>
  
الأمر كوردوفا create
+
== الأمر <code>cordova create</code> ==
== ملخص ==  
+
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.
 +
===الصياغة===  
 +
<syntaxhighlight lang="shell">cordova create path [id [name [config]]] [options]‎</syntaxhighlight>
 +
{| class="wikitable"
 +
!القيمة
 +
!الشرح
 +
|-
 +
|<code>path</code>
 +
|تنشئ مجلدًا، ويُشترط ألا يكون موجودًا مسبقًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه.
 +
|-
 +
|<code>id</code>
 +
|القيمة الافتراضية: <code>io.cordova.hellocordova</code>
  
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.
+
يمثِّل مُعرِّفًا لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية <code>id</code> في العنصر <code>[[Cordova/config ref#widget|widget]]</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذه القيمة، ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء حزم [[Java|جافا]]. لذا يوصى بتحديد قيمة مناسبة.  
==الصياغة==
+
|-
<syntaxhighlight lang="console">cordova create path [id [name [config]]] [options]‎</syntaxhighlight>
+
|<code>name</code>
القيمة
+
|القيمة الافتراضية: <code>HelloCordova</code>  
الوصف
+
 
path
+
عنوان العرض (display title) الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذا ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة.  
نحدد هذه الخاصية مجلدًا، والذي يجب ألا يكون موجودًا سلفًا. سوف تنشئ إنشاء هذا المجلد. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه.
+
|-
id
+
|<code>config</code>
القيمة الافتراضية: <code>io.cordova.hellocordova</code>
+
|سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف ‎<code><path></code>/.cordova/config.json.
مُعرِّف لنمط النطاق العكسي (Reverse domain-style) الذي يشير إلى الخاصية <code>id</code> في العنصر <code>widget</code> في المف <code>config.xml</code>. يمكن تغيير هذه القيمة، ولكن قد تولّد بعض الشيفرات البرمجية باستخدام هذه القيمة، مثل أسماء حزم [[Java|جافا]]. يوصى بتحديد قيمة مناسبة.  
+
|}
name  
+
===الخيارات التي يمكن استعمالها===
القيمة الافتراضية: <code>HelloCordova</code>  
+
{| class="wikitable"
عنوان العرض الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>config.xml</code>. يمكن تغيير هذا ولكن قد تُولد بعض الشيفرات البرمجية باستخدام هذه القيمة، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة.  
+
!الأمر
config  
+
!الشرح
سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة الخاصة بها في <code><path></code> / .cordova / config.json  
+
|-
==خيارات==  
+
|<code>‎--template</code>
الخيار
+
|استخدام قالب مخصصٍ محلي، أو من مُدير الحُزم NPM، أو من مستودع GitHub.  
الوصف
+
|-
‎--template  
+
|<code>‎--copy-from\‎</code>
استخدام قالب مخصصٍ موجود محلي أو في مُدير الحُزم NPM، أو في مستودع GitHub.  
+
|<code>‎--src</code>
‎--copy-from\‎  
+
|-
--src  
+
|<code>‎--link-to</code>
‎--link-to  
+
|رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه.
رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه.  
+
|}
== بنية المجلد ==  
+
=== بنية مجلد المشروع ===  
  
 
تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:  
 
تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:  
<syntaxhighlight lang="console">myapp/
+
<syntaxhighlight lang="text">myapp/
 
|-- config.xml
 
|-- config.xml
 
|-- hooks/
 
|-- hooks/
سطر 131: سطر 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>====  
  
يحتوي هذا الملف إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر أيضا صفحة [http://cordova.apache.org/docs/en/latest/config_ref/index.html config.xml reference documentation].
+
يحتوي المجلد <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>. 
====www/====
 
  
يحتوي على عناصر الويب (web artifacts) الخاصة بالمشروع، مثل ملفات html. و cs. و js. كمطور لتطبيقات كوردوفا، فإن معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر <code>cordova prepare</code> إلى المجلد www الخاص بكل منصة على حدة. يعاد إنتاج المجلد المصدري www داخل المجلد الفرعي لكل منصة، على سبيل المثال في <code>platforms/ios/www</code> أو <code>platforms/android/assets/www</code>. نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري www، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليط إضافة المجلد المصدري www، جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.  
+
نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري <code>www</code>، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليك إضافة المجلد المصدري <code>www</code> جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.  
====platforms/====  
+
====المجلد <code>platforms‎</code>====  
  
يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية build scripts) للمنصات التي تضيفها إلى مشروعك.  
+
يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك.
'''WARNING:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليط ألا تعدّل أي ملفات في المجلد / platform /، إلا إن كنت تعرف ما تفعله، أو إذا كان التوثيق لا يمنع ذلك. يُكتب فوق الملفات الموجودة في هذا المجلد بشكل روتيني عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.
 
====plugins/====
 
  
الإضافات التي أُضيفت ستُسختلص أو تُتسخ في هذا المجلد.  
+
'''ملاحظة:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد <code>/platform/</code>، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق يسمح بذلك. الملفات الموجودة في هذا المجلد ستستبدل (overwritten) باستمرار عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.  
====hooks/====  
+
====المجلد <code>plugins‎</code>====  
  
قد يحتوي هذا المجلد على نصوص برمجية مستخدمة لتخصيص أوامر واجهة سطر أوامر كوردوفا. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.
+
الإضافات التي أُضيفت للمشروع ستُستخلص أو تُتسخ في هذا المجلد.  
 +
====المجلد <code>hooks</code>‎====
  
راجع الصفحة [http://cordova.apache.org/docs/en/latest/guide_appdev_hooks_index.md.html Hooks Guide] لمزيد من المعلومات.
+
قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.  
====merges/====
 
  
يتم تضمين أصول الويب الخاصة بالمنصة (ملفات HTML و CSS و[[JavaScript|[[Java|جافا]]اسكريبت]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. يتم نشر هذه الملفات خلال الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/</code> محل الملفات المطابقة في المجلد <code>www/</code> الخاص بالمنصة المعنية. مثال سريع، بافتراض هيكل المشروع التالي:  
+
راجع صفحة [[Cordova/hooks|الخطافات]] لمزيد من المعلومات.
<syntaxhighlight lang="console">merges/
+
====المجلد <code>merges‎</code>====
 +
 
 +
يتم تضمين أصول الويب الخاصة بالمنصة (ملفات [[HTML]] و [[CSS]] و [[JavaScript|JavaScript]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/</code> محل الملفات المطابقة في المجلد <code>www/</code> الخاص بالمنصة المعنية.
 +
 
 +
المثال التالي يفترض هيكل المشروع التالي:  
 +
<syntaxhighlight lang="text">merges/
 
|-- ios/
 
|-- ios/
 
| -- app.js
 
| -- app.js
سطر 161: سطر 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>، وسيتجاوز الملف <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> في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء المشروع. ستُحفظ االمنصة والإضافة خاصتك في الملفين config.xml و package.json تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر <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> باستخدام المعرّف واسم العرض المحددين:
+
=== أمثلة ===
<syntaxhighlight lang="console">cordova create myapp com.mycompany.myteam.myapp MyApp‎</syntaxhighlight>
 
 
*
 
*
  
إنشاء مشروع كوردوفا مع رابط رمزي (symlink) إلى مجلد <code>www</code> موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:  
+
* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين:
<syntaxhighlight lang="console">cordova create myapp --link-to=../www‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova create myapp com.mycompany.myteam.myapp MyApp‎</syntaxhighlight>
 +
* إنشاء مشروع كوردوفا مع وصلة رمزي (symlink) إلى مجلد <code>www</code> موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو إن كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:
 +
<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}|
سطر 188: سطر 219:
 
     save |
 
     save |
 
     update ]‎</syntaxhighlight>  
 
     update ]‎</syntaxhighlight>  
أوامر فرعية  
+
{| class="wikitable"
الخيار  
+
!أوامر فرعية
الوصف
+
!الخيار
add <code><platform-spec></code> [...]  
+
!الشرح
 
+
|-
إضافة منصات محددة  
+
|<code>add <platform-spec> [...]‎</code>
--nosave  
+
|                                 
عدم حفظ <code><platform-spec></code> في الملفين <code>config.xml</code> و <code>package.json</code> بعد تثبيتها باستخدام الوسم <code><engine></code>  
+
|إضافة منصات محددة.
--link=<code><path></code>  
+
|-
عندما يكون <code><platform-spec></code> عبارة مسارًا محليًا، فسينشئ هذا الأمر رابطًا لمكتبة المنصة مباشرةً بدلاً من إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة)  
+
|
remove <code><platform></code> [...]  
+
|‎<code>--nosave</code>
 +
|عدم حفظ <code><platform-spec></code> في الملفين [[Cordova/config ref|config.xml]] و package.json بعد تثبيتها باستخدام الوسم <code><engine></code>.
 +
|-
 +
|
 +
|‎<code>--link=<path></code>
 +
|عندما يكون <code><platform-spec></code> مسارًا محليًا، فسينشئ هذا الأمر الفرعي رابطًا لمكتبة المنصة مباشرةً بدلًامن إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة).
 +
|-
 +
|<code>remove <platform>‎[...]‎</code>
 +
|
 +
|إزالة المنصات المحددة.
 +
|-
 +
|
 +
|‎<code>--nosave</code>
 +
|عدم حذف المنصات المحددة من الملفين [[Cordova/config ref|config.xml]] و package.json بعد إزالتها.
 +
|-
 +
|<code>update platform[‎...]‎</code>
 +
|
 +
|تحديث المنصات المحددة.
 +
|-
 +
|
 +
|‎<code>--save</code>
 +
|تحديث الإصدار المحدد في الملف [[Cordova/config ref|config.xml]].
 +
|-
 +
|<code>list</code>
 +
|
 +
|سرد جميع المنصات المثبتة والمتاحة في قائمة.
 +
|-
 +
|<code>check</code>
 +
|
 +
|إدارج المنصات التي يمكن تحديثها عبر واجهة سطر الأوامر عبر الأمر <code>platform update</code>.
 +
|-
 +
|<code>save</code>
 +
|
 +
|حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف [[Cordova/config ref|config.xml]].
 +
|}
  
إزالة المنصات المحددة
+
=== تحديد المنصات (Platform-spec) ===
--nosave
 
عدم حذف المنصات المحددة من الملفين <code>config.xml</code> و <code>package.json</code> بعد إزالتها
 
update <code>platform</code> [...]
 
  
تحديث المنصات المحددة
+
هناك عدة طرق لتحديد منصة معينة:  
--save
+
<syntaxhighlight lang="shell"><platform-spec> : platform[@version] | path | url[#commit-ish]‎</syntaxhighlight>  
تحديث الإصدار المحدد في الملف <code>config.xml</code>
+
list
+
{| class="wikitable"
 
+
!القيمة
سرد جميع المنصات المثبتة والمتاحة في لائحة.
+
!الشرح
check
+
|-
 
+
|<code>platform</code>
يدرج هذا الأمر في قائمة المنصات التي يمكن تحديثها عن طريق واجهة سطر الأوامر عبر الأمر <code>platform update</code>
+
|اسم المنصة، على سبيل المثال، <code>android</code>، و <code>ios</code>، و <code>windows</code> ...إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.
save
+
|-
 
+
|<code>version</code>
حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف config.xml
+
|مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (SemVer، اختصار للكلميتن Semantic Versioning).
== تحديد المنصات (Platform-spec) ==
+
|-
 
+
|<code>path</code>
هناك عدد من الطرق لتحديد المنصة:  
+
|مسار إلى المجلد أو الملف tarball الذي يحتوي المنصة.
<syntaxhighlight lang="console"><platform-spec> : platform[@version] | path | url[#commit-ish]‎</syntaxhighlight>  
+
|-
القيمة  
+
|<code>url</code>
الوصف
+
|عنوان لمستودع git أو لملف tarball الذي يحتوي على منصة.
platform  
+
|-
اسم المنصة، على سبيل المثال، android، و ios، وwindows إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. عند عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.  
+
|<code>commit-ish</code>
version  
+
|مرجع من أجل <code>Commit/tag/branch</code>. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>".
مُحدِّد إصدار على هيئة رئيسي.فرعي.رقعة (Major.minor.patch) باستخدام semver
+
|}
path  
+
=== المنصات المدعومة ===  
المسار إلى المجلد أو الملف tarball الذي يحتوي على المنصة  
+
*[[Cordova/platforms android|أندرويد]]
url  
+
*[[Cordova/platforms ios|iOS]]
عنوان لمستودع git أو لملف tarball الذي يحتوي على منصة  
+
* [[Cordova/platforms windows|ويندوز]] (‎‎8.1, Phone 8.1, UWP - Windows 10)  
commit-ish  
+
* Browser
المرجع إلزام/وسم/فرع (Commit/tag/branch). إذا لم يتم تحديد أي قيمة، فسيتم استخدام "master"  
+
* [[Cordova/platforms electron|Electron]]
== المنصات المدعومة ==  
+
=== أمثلة ===
*أندرويد  
 
*iOS  
 
* Windows (8.Phone 8.UWP - Windows 10)  
 
* Blackberry10
 
* أوبونتو
 
== Browser ==
 
== المنصات الموقوفة ==  
 
* 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>
*
+
* إضافة منصة أندرويد مع الإصدار [http://semver.org/ SemVer ^ 5.0.0] وحفظه في الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>:  
 
+
<syntaxhighlight lang="shell">cordova platform add android@^5.0.0‎</syntaxhighlight>
إضافة منصة <code>android</code> مع الإصدار [http://semver.org/ semver] ^ 5.0.0 وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>:  
+
* إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>:  
<syntaxhighlight lang="console">cordova platform add android@^5.0.0‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova platform add https://github.com/myfork/cordova-android.git#4.0.0‎</syntaxhighlight>
*
+
* إضافة منصة باستخدام مجلد محلي باسم <code>android</code>:  
 
+
<syntaxhighlight lang="shell">cordova platform add ../android‎</syntaxhighlight>
إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>:  
+
* إضافة منصة باستخدام ملف tarball المحدد:
<syntaxhighlight lang="console">cordova platform add https://github.com/myfork/cordova-android.git#4.0.0‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova platform add ../cordova-android.tgz‎</syntaxhighlight>
*
+
* إزالة منصة <code>android</code> من المشروع ومن الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>:
 
+
<syntaxhighlight lang="shell">cordova platform rm android‎</syntaxhighlight>
إضافة منصة باستخدام مجلد محلي باسم <code>android</code>:  
+
* إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>:
<syntaxhighlight lang="console">cordova platform add ../android‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova platform rm android --nosave‎</syntaxhighlight>
*
+
* سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:
 +
<syntaxhighlight lang="shell">cordova platform ls‎</syntaxhighlight>
 +
* حفظ إصدارات جميع المنصات المضافة حاليًا إلى المشروع في الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>
 +
<syntaxhighlight lang="shell">cordova platform save‎</syntaxhighlight>
  
إضافة منصة باستخدام ملف tarball المحدد:
+
== الأمر <code>cordova plugin</code> ==
<syntaxhighlight lang="console">cordova platform add ../cordova-android.tgz‎</syntaxhighlight>
+
يُمكّن هذا الأمر من إدارة إضافات المشروع.
*
+
===الصياغة===  
 
+
<syntaxhighlight lang="shell">cordova {plugin | plugins} [
إزالة منصة <code>android</code> من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:
+
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
<syntaxhighlight lang="console">cordova platform rm android‎</syntaxhighlight>
 
*
 
 
 
إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين <code>config.xml</code> و <code>package.json</code>:
 
<syntaxhighlight lang="console">cordova platform rm android --nosave‎</syntaxhighlight>
 
*
 
 
 
سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:
 
<syntaxhighlight lang="console">cordova platform ls‎</syntaxhighlight>
 
*
 
 
 
حفظ إصدارات من جميع المنصات المضافة حاليا إلى المشروع في الملفين <code>config.xml</code> و <code>package.json</code>
 
<syntaxhighlight lang="console">cordova platform save‎</syntaxhighlight>
 
 
 
الأمر plugin
 
== ملخص ==  
 
 
 
يمكن هذا الأمر من إدارة إضافات المشروع  
 
==الصياغة==  
 
<syntaxhighlight lang="console">cordova {plugin | plugins} [
 
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --browserify | --force} |
 
 
     {remove | rm} {<pluginid> | <name>} --save |
 
     {remove | rm} {<pluginid> | <name>} --save |
 
     {list | ls} |
 
     {list | ls} |
    search [<keyword>] |
 
 
     save |
 
     save |
]</syntaxhighlight>  
+
]</syntaxhighlight>  
الأمر الفرعي
+
{| class="wikitable"
الخيار  
+
!أوامر فرعية
الوصف
+
!الخيار
add <code><plugin-spec></code> [...]  
+
!الشرح
 
+
|-
يضيف هذا الأمر الإضافات المحددة
+
|<code>add <plugin-spec> [...]‎</code>
--searchpath <code><directory></code>  
+
|                                 
عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولا في هذا المجلد وكل من المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>*nix</code> و "؛" في ويندوز.  
+
|يضيف هذا الأمر إضافات محددة.
--noregistry  
+
|-
لا تبحث في السجل عن الإضافات.  
+
|
--link  
+
| --searchpath <code><directory></code>
عند التثبيت من مسار محلي، فسيتم إنشاء رابط رمزي (symbolic link) بدلاً من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. هذا الأمر مفيد لتطوير الإضافات.  
+
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>nix*</code> أو "؛" في ويندوز.
--nosave  
+
|-
عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملف <code>config.xml</code> أو <code>package.json</code>.  
+
|
--browserify
+
|<code>--noregistry</code>
تصريف (Compile) إضافة [[JavaScript|[[Java|جافا]]اسكريبت]] في وقت البناء باستخدام browserify بدلا من runtime.
+
|لا تبحث في السجل عن الإضافات.  
--force  
+
|-
تم تقديمه في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
+
|
remove `  
+
|‎<code>--link</code>
`[...]  
+
|عند التثبيت من مسار محلي، فسيتم إنشاء وصلة رمزي (symbolic link) بدلًا من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات.
--nosave  
+
|-
عدم إزالة الإضافة المحددة من الملف config.xml أو package.json  
+
|
list  
+
|‎<code>--nosave</code>
 
+
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>.  
سرد قائمة من الإضافات المثبتة حاليا
+
|-
search <code>[<keyword>]</code> [...]
+
|
 
+
|‎<code>--force</code>
البحث في http://plugins.cordova.io عن الإضافات التي تطابق الكلمات الرئيسية
+
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
save
+
|-
 
+
|<code>remove`‎</code>
حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع  
+
|‎‎‎‎<code>`[...]‎</code>
== تحديد الإضافات (Plugin-spec) ==  
+
|
 +
|-
 +
|
 +
|‎<code>--nosave</code>
 +
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code>
 +
|-
 +
|<code>list</code>
 +
|
 +
|سرد قائمة من الإضافات المثبتة حاليًا.
 +
|-
 +
|<code>save</code>
 +
|
 +
|حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع.
 +
|}
 +
=== تحديد الإضافات (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"
scope  
+
!القيمة
نطاق الإضافة المنشورة على هيئة [https://docs.npmjs.com/misc/scope scoped npm package]  
+
!الشرح
plugin  
+
|-
معرف الإضافة (معرف الإضافة في سجل npm أو في - searchPath)  
+
|<code>scope</code>
version  
+
|نطاق الإضافة المنشورة على هيئة حزمة npm  نطاقية ([https://docs.npmjs.com/misc/scope scoped npm package]).
مُحدِّد الإصدار (version specifier) على هيئة "الإصدار_الرئيسي.الإصدار_الفرعي.الرُقعة" (Major.minor.patch) باستخدام semver  
+
|-
directory
+
|<code>plugin</code>
المجلد الذي يحتوي على الملف plugin.xml
+
|مُعرّف (id) الإضافة (في سجل npm أو في <code>‎--searchPath</code>).
url
+
|-
رابط مستودع git الذي يحتوي الملف plugin.xml
+
|<code>version</code>
commit-ish
+
|مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (semver).  
مرجع الالتزام/الوسم/الفرع (Commit/tag/branch). إذا لم يتم تحديد أي منها، فسيتم استخدام "master"
+
|-
== خوارزمية لحل الإضافات (Algorithm for resolving plugins) ==
+
|<code>directory</code>
 
+
|المجلد الذي يحتوي على الملف <code>plugin.xml</code>.
عند إضافة إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على حل (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب ترتيب الأسبقية):
+
|-
* قيمة العنصر <code>plugin-spec</code> الوارد في الأمر (على سبيل المثال <code>cordova plugin add pluginID@version</code>)
+
|<code>url</code>
* قيمة <code>plugin-spec</code> المحفوظة في الملفين <code>config.xml</code> و <code>package.json</code> (أي إن سبق وأضيفت الإضافة بدون الخيار <code>--nosave</code>)
+
|رابط مستودع git الذي يحتوي الملف <code>plugin.xml</code>.  
* اعتبارًا من الإصدار 1.6 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد ارتباطات كوردوفا خاصتها [http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html#specifying-project-requirements Cordova dependencies] في الملف <code>package.json</code>)
+
|-
* أحدث إصدار ملحق ينشر إلى npm
+
|<code>commit-ish</code>
==أمثلة==
+
|مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "<code>master</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>
 
*
 
 
 
إضافة <code>cordova-plugin-camera</code> مع [http://semver.org/ semver] الإصدار ^ 2.0.0 وحفظه في <code>config.xml</code> و <code>package.json</code>:
 
<syntaxhighlight lang="console">cordova plugin add cordova-plugin-camera@^2.0.0‎</syntaxhighlight>
 
*
 
 
 
إضافة الإضافة من المجلد المحلي المحدد:
 
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera‎</syntaxhighlight>
 
*
 
 
 
إضافة الإضافة من ملف tarball المحدد:
 
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera.tgz‎</syntaxhighlight>
 
*
 
  
إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:  
+
عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على استبيان (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب ‎الأسبقية):
<syntaxhighlight lang="console">cordova plugin rm camera‎</syntaxhighlight>  
+
* قيمة العنصر <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>).
 +
* اعتبارًا من الإصدار 6.1 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد [http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html#specifying-project-requirements ارتباطاتها] في الملف <code>package.json</code>).
 +
* أحدث إصدارات الإضافة المنشورة في npm..
 +
===أمثلة===
 
*
 
*
  
إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</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 rm camera --nosave‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins
*
+
</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 ls‎</syntaxhighlight>  
+
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد:  
== الإضافات المُتعارضة (Conflicting plugins) ==
+
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera‎</syntaxhighlight>
 
+
* يضيف هذا المثال الإضافة من ملف tarball المحدد:
قد يحدث تعارض بين الإضافات في حال استخدمت الإضافات المضافة الوسم <code>edit-config</code> في الملف plugin.xml الخاص بها. يمكن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.
+
<syntaxhighlight lang="shell">cordova plugin add ../cordova-plugin-camera.tgz‎</syntaxhighlight>
 +
* إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>:
 +
<syntaxhighlight lang="shell">cordova plugin rm camera‎</syntaxhighlight>
 +
* إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</code>:
 +
<syntaxhighlight lang="shell">cordova plugin rm camera --nosave‎</syntaxhighlight>
 +
* إدارج قائمة من جميع الإضافات المثبتة في المشروع:
 +
<syntaxhighlight lang="shell">cordova plugin ls‎</syntaxhighlight>  
 +
=== الإضافات المُتعارضة ===
  
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس العنصر XML. لقد تم تقديم (implement) عملية رصد التعارض حتى لا تُضاف الإضافات بحيث تمنع قيام أحد الإضافات بالكتابة فوق (overwrite) التغييرات في وسم <code>edit-config</code> تابع لإضافة أحرى. سيُطلق خطأ عند العثور على تعارض في <code>edit-config</code>، ولن تُضاف الإضافة. ستشير رسالة الخطأ إلى أنه يجب حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف plugin.xml الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية <code>--force</code>، والتي تفرض إضافة الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، وسيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سترك الإضافات الأخرى في حالة سيئة.  
+
قد يحدث تعارض بين الإضافات (Conflicting plugins) في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر [[XML]].  
  
ارجع إلى [https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html#edit-config plugin.xml guide] لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الأمثلة.  
+
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم [[XML]]. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تكتب إحدى الإضافات فوق (overwrite) التغييرات التي أجرتها إضافة أخرى عبر الوسم <code>edit-config</code>.
  
الأمر كوردوفا prepare
+
سيُطلق خطأ عند رصد تعارضٍ في <code>edit-config</code>، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎<code>--force</code>، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.
== ملخص ==
 
  
يحوِّل هذا الأمر البيانات الوصفية في الملف config.xml إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات محددة بحيث يكون المشروع جاهزًا للبناء بواسطة بيئة العمل الأصلية SDK.
+
ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]] لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الحصول على الأمثلة.  
==الصياغة==
 
<syntaxhighlight lang="console">cordova prepare [<platform> [..]]
 
    [--browserify]‎</syntaxhighlight>
 
==خيارات==
 
الخيار
 
الوصف
 
<code><platform> [..]</code>  
 
اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
 
--browserify
 
تصريف (Compile) ملفات [[JavaScript|[[Java|جافا]]اسكريبت]] الخاصة بالإضافة في وقت البناء باستخدام browserify بدلا من runtime.  
 
  
الأمر كوردوفا compile
+
== الأمر <code>cordova prepare</code> ==
== ملخص ==  
+
يحوِّل هذا الأمر البيانات الوصفية في الملف <code>config.xml</code> إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK.
 +
===الصياغة===
 +
<syntaxhighlight lang="shell">cordova prepare [<platform> [..]]
 +
</syntaxhighlight>
 +
===الخيارات التي يمكن استعمالها===
 +
{| class="wikitable"
 +
!الخيار
 +
!الشرح
 +
|-
 +
|‎<code><platform> [..]‎</code>
 +
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
 +
|}
  
الأمر <code>cordova compile</code> هو جزء من [#cordova-build-command cordova build command]. إن أنه يكتفي بتنفيذ خطوة التصريف (compilation)، لكن دون القيام بالتحضير. من الشائع استدعاء <code>cordova build</code> بدلاً من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد باستخدام [http://cordova.apache.org/docs/en/latest/guide_appdev_hooks_index.md.html hooks].  
+
== الأمر <code>cordova compile</code> ==
==الصياغة==  
+
الأمر <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-command cordova build command] أدناه.  
+
لمزيد من التفاصيل، انظر أمر البناء (الأمر <code>cordova build</code> ) أدناه.  
  
الأمر كوردوفا build  
+
== الأمر <code>cordova build</code> ==
== ملخص ==  
+
هذا الأمر هو اختصار للأمرين <code>cordova prepare</code> + <code>cordova compile</code> في جميع المنصات المحددة، إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة.
  
هذا الأمر هو اختصار لـ <code>cordova prepare</code> + <code>cordova compile</code> لجميع المنصات المحددة. يسمح لك ببناء التطبيق لأجل المنصة المحددة.
+
===الصياغة===  
==الصياغة==  
+
<syntaxhighlight lang="shell">cordova build [<platform> [...]]
<syntaxhighlight lang="console">cordova build [<platform> [...]]
 
 
     [--debug|--release]
 
     [--debug|--release]
 
     [--device|--emulator]
 
     [--device|--emulator]
 
     [--buildConfig=<configfile>]
 
     [--buildConfig=<configfile>]
    [--browserify]
+
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
+
{| class="wikitable"
الخيار  
+
!الخيار
الوصف
+
!الشرح
<code><platform> [..]</code>  
+
|-
اسم(اء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات.  
+
|‎<code><platform> [..]</code>
--debug  
+
|اسم(أسماء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات.
القيام ببناء مُصحّح (debug build) هذا يترجم عادة إلى وضع التصحيح للمنصة التي يتم بناؤها.  
+
|-
--release  
+
|‎<code>--debug</code>
تنفيذ بناء الإطلاق (release build). هذا يترجم عادة إلى وضع الإطلاق للمنصة التي يجري بناؤها.  
+
|تنفيذ بناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها.  
--device  
+
|-
البناء لأجل لجهاز  
+
|‎<code>--release</code>
--emulator  
+
|تنفيذ بناء الإطلاق (release build). هذا يترجم عادة إلى وضع الإطلاق (release mode) للمنصة التي يجري بناؤها.
الببناء لأجل المحاكي. قد تختلف بنية المنصة لمحاكيات الجهاز Vs.  
+
|-
--buildConfig=<code><configFile></code>  
+
|‎<code>--device</code>
القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.  
+
|بناء المشروخ لجهاز.
 +
|-
 +
|‎<code>--emulator</code>
 +
|البناء لأجل المحاكي. قد تختلف بنية المنصة لمحاكيات الجهاز Vs.
 +
|-
 +
|‎<code>--buildConfig=<configFile></code>                                
 +
|القيمة الافتراضية: <code>build.json</code> في المجلد الجذري لكوردوفا.  
 +
 
 
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
 
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
--browserify
+
|-
تصريف (Compile) إضافة [[JavaScript|[[Java|جافا]]اسكريبت]] في وقت البناء باستخدام browserify بدلا من runtime.
+
|<code><platformOpts></code>
<code><platformOpts></code>  
+
|لتوفير خيارات مخصوصة بمنصة معينة، فيجب عليك إدارج هذا الخيار بعد الفاصل <code>--</code>. راجع مستندات دليل المنصة لمزيد من التفاصيل.
لتوفير خيارات مخصوصة بمنصة معينة، فيجب عليك إدارجها بعد الفاصل <code>--</code>. راجع مستندات دليل المنصة لمزيد من التفاصيل.  
+
|}
==أمثلة==  
+
===أمثلة===  
 
*
 
*
  
البناء لمنصتي <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> مع استخدام إعدادات البناء المحددة:
 +
<syntaxhighlight lang="shell">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
 +
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:
 +
<syntaxhighlight lang="shell">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
 +
</syntaxhighlight>
  
البناء من أجل المنصة <code>android</code> في الوضع <code>release</code> مع استخدام إعدادات البناء المحددة:
+
== الأمر <code>cordova run</code> ==
<syntaxhighlight lang="console">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
+
يحضِّر هذا الأمر ويبني وينشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيتم استخدامه، ما لم يكن هناك محاكٍ مؤهل يعمل مسبقًا.  
*
+
===الصياغة===  
 
+
<syntaxhighlight lang="shell">cordova run [<platform> [...]]
البناء للمنصة <code>android</code> في وضع الإطلاق (release)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:
 
<syntaxhighlight lang="console">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>
 
 
 
الأمر كوردوفا run
 
== ملخص ==
 
 
 
يقوم هذا الأمر بتحضير، وبناء ونشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيُستخدم، ما لم يكن هناك محاكٍ مؤهل يعمل بالفعل.  
 
==الصياغة==  
 
<syntaxhighlight lang="console">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"
الخيار  
+
!الخيار
الوصف
+
!الشرح
<code><platform> [..]</code>  
+
|-
اسم(اء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات.  
+
|<code><platform> ‎‎[..]</code>
‎--list  
+
|اسم(أسماء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات.
تعيد قائمة تضم الأهداف (targets) المتاحة. وتعرض أهداف النشر الخاصة بالجهاز والمحاكي ما لم يتم تحديدها  
+
|-
‎--debug  
+
|<code>--list</code>
تقوم هذه الخاصية بنشر بناء مُصحّح (debug build). هذا هو السلوك الافتراضي إلا إن تم تحديد الراية <code>--release</code>.  
+
|يعيد هذا الخيار قائمة تضم الأهداف (targets) المتاحة. ويعرض أهداف النشر الخاصة بالجهاز والمحاكي ما لم يتم تحديدها
‎--release  
+
|-
نشر بناء إصداري (release build)  
+
|<code>‎--debug</code>
‎--noprepare  
+
|يقوم هذا الخيار بنشر (Deploy) بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية <code>--release</code>.
تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا v6.2 وما بعده)  
+
|-
‎--nobuild  
+
|<code>--release</code>
تخطي مرحلة البناء  
+
|نشر بناءٍ إطلاقي (release build).
‎--device  
+
|-
النشر إلى الجهاز  
+
|<code>--device</code>
‎--emulator  
+
|بناء المشروع لجهاز.
النشر إلى المحاكي  
+
|-
‎--target  
+
|‎<code>--noprepare</code>
نشر إلى محاكي أو جهاز محدد. استخدم الراية <code>--list</code> لعرض الخيارات المستهدفة  
+
|تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده).
--buildConfig = <code><configFile></code>  
+
|-
القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.  
+
|<code>‎--nobuild</code>
 +
|تخطي مرحلة البناء.
 +
|-
 +
|<code>--device</code>
 +
|النشر إلى الجهاز.
 +
|-
 +
|<code>--emulator</code>
 +
|النشر إلى المحاكي.
 +
|-
 +
|<code>--target</code>
 +
|نشر إلى محاكي أو جهاز محدد. استخدم الراية <code>--list</code> لعرض الخيارات المستهدفة.
 +
|-
 +
|‎<code>--buildConfig=<configFile></code>
 +
|القيمة الافتراضية: <code>build.json</code> في المجلد الجذري لكوردوفا.  
 +
 
 
استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
 
استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
--browserify
+
|-
تصريف (Compile) إضافة [[JavaScript|[[Java|جافا]]اسكريبت]] في وقت البناء باستخدام browserify بدلا من runtime.
+
|<code><platformOpts></code>
<code><platformOpts></code>  
+
|لتوفير خيارات مخصوصة بمنصة محددة، فيجب عليك إدارج هذا الخيار بعد الفاصل <code>--</code>. راجع مستندات دليل المنصة لمزيد من التفاصيل.
لتوفير خيارات مخصوصة بمنصة محددة، فيجب عليك إدارجها بعد الفاصل <code>--</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>
 
*
 
 
 
تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:
 
<syntaxhighlight lang="console">cordova run android --nobuild‎</syntaxhighlight>
 
 
*
 
*
  
تشغيل بناء مصحح لمشروع كوردوفا الحالي على جهاز <code>ios</code>:  
+
* تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة <code>android</code> المسمى <code>Nexus_5_API_23_x86</code>. مع استخدام إعدادات البناء المحددة عند التشغيل:
<syntaxhighlight lang="console">cordova run ios --device‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86
*
+
</syntaxhighlight>
 +
* تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:
 +
<syntaxhighlight lang="shell">cordova run android --nobuild‎</syntaxhighlight>
 +
* تشغيل بناء مصحَّح لمشروع كوردوفا الحالي على جهاز <code>ios</code>:  
 +
<syntaxhighlight lang="shell">cordova run ios --device‎</syntaxhighlight>
 +
* تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:
 +
<syntaxhighlight lang="shell">cordova run ios --list‎</syntaxhighlight>
  
تعداد أسماء جميع الأجهزة المتصلة والمحاكيت المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:
+
== الأمر <code>cordova emulate</code> ==
<syntaxhighlight lang="console">cordova run ios --list‎</syntaxhighlight>  
+
هذا الأمر هو اختصار للأمر <code>cordova run --emulator</code>. ويطلق المحاكي بدلًا من الجهاز. انظر  قسم الأمر <code>cordova run</code> أعلاه لمزيد من التفاصيل.
  
الأمر cordova emulate
+
== الأمر <code>cordova clean</code> ==
== ملخص ==
+
ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة.  
 
+
===الصياغة===  
هذا الأمر هو اختصار للتعبيؤ <code>cordova run --emulator</code>. ويطلق المحاكي بدلًا من الجهاز. انظر صفحة [#cordova-run-command cordova run command docs] لمزيد من التفاصيل.
+
<syntaxhighlight lang="shell">cordova clean [<platform> [...]]‎</syntaxhighlight>  
 
+
=== أمثلة ===  
الأمر cordova clean
 
== ملخص ==  
 
 
 
ينظف مخلفات (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء خاصة بالمنصة.  
 
==الصياغة==  
 
<syntaxhighlight lang="console">cordova clean [<platform> [...]]‎</syntaxhighlight>  
 
== مثال ==  
 
 
*
 
*
  
تنظيف مخلفات البناء الخاصة بالمنصة <code>android</code>:  
+
* تنظيف عناصر البناء الخاصة بالمنصة <code>android</code>:  
<syntaxhighlight lang="console">cordova clean android‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova clean android‎</syntaxhighlight>
  
الأمر cordova requirements  
+
== الأمر <code>cordova requirements</code> ==
== ملخص ==  
+
هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة <code>0</code> عند الخروج، وإلا فستعاد قيمة غير معدومة.
  
هذا الأمر يتحقق من ويطبع جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعيد القيمة 0 عند الخروج، وإلا فستعيد قيمة غير معدومة.  
+
يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة.  
 +
===الصياغة===
 +
<syntaxhighlight lang="shell">cordova requirements android‎</syntaxhighlight>
  
يمكن أن يكون ذلك مفيدًا عند إعداد جهاز لبناء منصة معينة.  
+
== الأمر <code>cordova info</code> ==
==الصياغة==  
+
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا <code>info.txt</code> في قاعدة المشروع.  
<syntaxhighlight lang="console">cordova requirements android‎</syntaxhighlight>  
+
===الصياغة===  
 +
<syntaxhighlight lang="console">cordova info‎</syntaxhighlight>
  
الأمر cordova info
+
== الأمر <code>cordova serve</code> ==
== ملخص ==  
+
يشغل هذا الأمر خادمًا محليًا من المجلد <code>www/assets</code> باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code><nowiki>http://HOST_IP:PORT/PLATFORM/www</nowiki></code>  
 
+
===الصياغة===  
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا info.txt في قاعدة المشروع.
+
<syntaxhighlight lang="console">cordova serve [port]‎</syntaxhighlight>
==الصياغة==
 
<syntaxhighlight lang="console">cordova info‎</syntaxhighlight>  
 
 
 
الأمر cordova serve
 
== ملخص ==  
 
 
 
يشغل هذا الأمر خادمًا محليًا من المجلد www/assets باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code>http://HOST_IP:PORT/PLATFORM/www</code>  
 
==الصياغة==  
 
<syntaxhighlight lang="console">cordova serve [port]‎</syntaxhighlight>  
 
 
 
الأمر cordova telemetry
 
== ملخص ==
 
  
 +
== الأمر <code>cordova telemetry</code> ==
 
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).  
 
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).  
==الصياغة==  
+
===الصياغة===  
<syntaxhighlight lang="console">cordova telemetry [STATE]‎</syntaxhighlight>  
+
<syntaxhighlight lang="shell">cordova telemetry [STATE]‎</syntaxhighlight>  
الخيار  
+
{| class="wikitable"
الوصف
+
!الخيار
on  
+
!الشرح
تشغيل مجموعة القياس عن بعد (telemetry collection).  
+
|-
off  
+
|<code>on</code>
تعطيل مجموعة القياس عن بعد (telemetry collection).  
+
|تشغيل مجموعة القياس عن بعد (telemetry collection).  
== تفاصيل ==  
+
|-
 +
|<code>off</code>
 +
|تعطيل مجموعة القياس عن بعد (telemetry collection).
 +
|}
 +
=== تفاصيل ===  
  
يتم عرض محث (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>  
  
لمزيد من التفاصيل، انظر إشعار الخصوصية: https://cordova.apache.org/privacy
+
لمزيد من التفاصيل، انظر صفحة [[Cordova/privacy|إدارة الخصوصية]].
  
الأمر cordova help  
+
== الأمر <code>cordova help</code> ==
== ملخص ==  
+
يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد.  
 
+
===الصياغة===  
يظهر هذا الأمر ملخص الصياغة، أو يساعد لفهم أمر محدد.  
+
<syntaxhighlight lang="shell">cordova help [command]
==الصياغة==  
 
<syntaxhighlight lang="console">cordova help [command]
 
 
cordova [command] -h
 
cordova [command] -h
cordova -h [command]‎</syntaxhighlight>  
+
cordova -h [command]‎ </syntaxhighlight>
  
الأمر cordova config  
+
== الأمر <code>cordova config</code> ==
== ملخص ==  
+
هذا الأمر يعيّن، و ويجلب، ويحذف، و يُعدّل ويُدرج قائمة الخيارات العامة لكوردوفا.
 
+
===الصياغة===  
هذا الأمر يعين، و يحصّل، ويحذف، و يعدل ويُدرج قائمة خيارات كوردوفا العامة  
+
<syntaxhighlight lang="shell">cordova config ls
==الصياغة==  
 
<syntaxhighlight lang="console">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.]]
 +
 
 +
* [[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

انظر أيضًا

مصادر