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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (نقل محمد-بغات صفحة Cordova/CLI إلى Cordova/cli)
سطر 8: سطر 8:
  
 
== لائحة الأوامر العامة ==
 
== لائحة الأوامر العامة ==
يمكن استخدام هذه الأوامر متوفرة في أي وقت.   
+
يمكن استخدام هذه الأوامر في أي وقت.   
 
{| class="wikitable"
 
{| class="wikitable"
 
!الأمر
 
!الأمر
سطر 27: سطر 27:
  
 
== لائحة أوامر المشروع ==
 
== لائحة أوامر المشروع ==
تُدعم هذه الأوامر عندما يكون مجلد العمل الحالي مشروعًا صالحًا لكوردوفا.  
+
تُدعم هذه الأوامر عندما يكون مجلد العمل الحالي مشروعًا صالحًا.  
 
{| class="wikitable"
 
{| class="wikitable"
 
!الأمر
 
!الأمر
سطر 48: سطر 48:
 
|-
 
|-
 
|<code>compile</code>  
 
|<code>compile</code>  
|بناء المنصة (ات)  
+
|بناء المنصة(ات)  
 
|-
 
|-
 
|<code>clean</code>  
 
|<code>clean</code>  
سطر 54: سطر 54:
 
|-
 
|-
 
|<code>run</code>  
 
|<code>run</code>  
|تشغيل المشروع (بما في ذلك prepare && compile)  
+
|تشغيل المشروع (بما في ذلك التحضير <code>prepare</code> والتصريف <code>compile</code>)  
 
|-
 
|-
 
|<code>serve</code>  
 
|<code>serve</code>  
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك prepare)
+
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير <code>prepare</code>)
 
|}
 
|}
  
سطر 66: سطر 66:
 
!الشرح
 
!الشرح
 
|-
 
|-
|‎-d أو‎ --verbose
+
|<code>‎-d أو‎‎ ‎--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) الخاصة بالأمر الحالي.
 
|}
 
|}
سطر 107: سطر 107:
 
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> ==
  
 
=== ملخص ===  
 
=== ملخص ===  
سطر 119: سطر 119:
 
|-
 
|-
 
|<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>widget</code> في الملف <code>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>config.xml</code>. يمكن تغيير هذا ولكن  تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة،، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة.  
 
|-
 
|-
 
|<code>config</code>  
 
|<code>config</code>  
سطر 165: سطر 165:
 
|-- plugins/
 
|-- plugins/
 
   |--cordova-plugin-camera/‎</syntaxhighlight>  
 
   |--cordova-plugin-camera/‎</syntaxhighlight>  
==== الملف Config.xml ====  
+
==== <code>Config.xml</code> ====  
  
يحتوي هذا الملف إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر أيضا [[Cordova/config ref|توثيق الملف Config.xml]].  
+
يحتوي هذا الملف على إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر [[Cordova/config ref|توثيق الملف Config.xml]].  
 
====<code>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> على أصول الويب (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>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|جافاسكريبت]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/‎</code> محل الملفات المطابقة في المجلد <code>www/‎</code> الخاص بالمنصة المعنية.   
  
 
المثال التالي يفترض هيكل المشروع التالي:  
 
المثال التالي يفترض هيكل المشروع التالي:  
سطر 197: سطر 199:
 
-- 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>.  
 
===== إداة الإصدارات =====  
 
===== إداة الإصدارات =====  
  
سطر 207: سطر 209:
 
* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين:  
 
* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين:  
 
<syntaxhighlight lang="console">cordova create myapp com.mycompany.myteam.myapp MyApp‎</syntaxhighlight>
 
<syntaxhighlight lang="console">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="console">cordova create myapp --link-to=../www‎</syntaxhighlight>
  
== الأمر platform command ==
+
== الأمر <code>platform command</code> ==
  
 
=== ملخص ===  
 
=== ملخص ===  
سطر 240: سطر 242:
 
|
 
|
 
|‎<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>
سطر 289: سطر 289:
 
|-
 
|-
 
|<code>path</code>  
 
|<code>path</code>  
|المسار إلى المجلد أو الملف tarball الذي يحتوي  المنصة.
+
|مسار إلى المجلد أو الملف tarball الذي يحتوي  المنصة.
 
|-
 
|-
 
|<code>url</code>  
 
|<code>url</code>  
سطر 295: سطر 295:
 
|-
 
|-
 
|<code>commit-ish</code>
 
|<code>commit-ish</code>
|المرجع "إلزام/وسم/فرع" (Commit/tag/branch). إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "master".
+
|المرجع "إلزام/وسم/فرع" (Commit/tag/branch). إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>".
 
|}
 
|}
 
=== المنصات المدعومة ===  
 
=== المنصات المدعومة ===  
سطر 308: سطر 308:
 
* WP8 (استخدم ويندوز بدلاً منه)  
 
* WP8 (استخدم ويندوز بدلاً منه)  
 
* Windows 8.0 (استخدم الإصدارات القديمة من كوردوفا)  
 
* Windows 8.0 (استخدم الإصدارات القديمة من كوردوفا)  
* نظام تشغيل Firefox (استخدام الإصدارات القديمة من كوردوفا)  
+
* نظام تشغيل Firefox (استخدم الإصدارات القديمة من كوردوفا)  
  
 
=== أمثلة ===
 
=== أمثلة ===
سطر 356: سطر 356:
 
|
 
|
 
|<code>add <plugin-spec> [...]‎</code>
 
|<code>add <plugin-spec> [...]‎</code>
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولا في هذا المجلد وكل من المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>*nix</code> و "؛" في ويندوز.
+
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>*nix</code> أو "؛" في ويندوز.
 
|-
 
|-
 
|
 
|
سطر 378: سطر 378:
 
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
 
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.  
 
|-
 
|-
|<code>remove `</code>
+
|<code>remove`</code>
|‎‎<code>`[...]</code>
+
|‎‎‎‎<code>`[...]</code>
 
|
 
|
 
|-
 
|-
سطر 436: سطر 436:
 
* إضافة <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="console">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>:  
+
* إضافة <code>cordova-plugin-camera</code> مع الإصدار الرمزي ([http://semver.org/ semver]) ‏‎<code>^2.0.0</code> وحفظه في الملفين <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@^2.0.0‎</syntaxhighlight>
 
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد:  
 
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد:  
سطر 452: سطر 452:
 
قد يحدث تعارض بين الإضافات في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.  
 
قد يحدث تعارض بين الإضافات في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.  
  
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم XML. لقد تم تقديم (implement) عملية رصد التعارض لتمنع إضافة الإضافات حتى لا تقوم إحدى الإضافات بالكتابة فوق (overwrite) التغييرات التي إجرتها إضافة أخرى في الوسم <code>edit-config</code>.   
+
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم XML. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تقوم إحدى الإضافات بالكتابة فوق (overwrite) التغييرات التي إجرتها إضافة أخرى عبر الوسم <code>edit-config</code>.   
  
سيُطلق خطأ عند العثور على تعارض في <code>edit-config</code>، ولن تُضاف الإضافة. ستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎<code>--force</code>، والتي تفرض إضافة الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.  
+
سيُطلق خطأ عند رصد تعارضٍ في <code>edit-config</code>، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية ‎<code>--force</code>، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.  
  
ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]]  لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الأمثلة.  
+
ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]]  لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الحصول على الأمثلة.  
  
 
== الأمر cordova prepare ==
 
== الأمر cordova prepare ==
سطر 472: سطر 472:
 
|-
 
|-
 
|‎<code><platform> [..]‎</code>
 
|‎<code><platform> [..]‎</code>
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
+
|اسم (اء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
 
|-
 
|-
 
|‎<code>--browserify</code>
 
|‎<code>--browserify</code>
سطر 482: سطر 482:
 
=== ملخص ===  
 
=== ملخص ===  
  
الأمر <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="console">cordova build [<platform> [...]]
سطر 491: سطر 491:
 
     [-- <platformOpts>]‎</syntaxhighlight>  
 
     [-- <platformOpts>]‎</syntaxhighlight>  
  
لمزيد من التفاصيل، انظر أوامر البناء أدناه.  
+
لمزيد من التفاصيل، انظر أمر البناء (<code>build</code>) أدناه.  
  
 
== الأمر cordova build ==
 
== الأمر cordova build ==

مراجعة 00:50، 8 ديسمبر 2018

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

هذه هي الصيغة العامة لأوامر واجهة سطر الأوامر:

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 ويُمرر باقي الخيارات للمنصات لأجل تحليلها.

أمثلة

يوضح هذا المثال كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع الإضافة camera وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار ‎--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 وجافاسكريبت) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر 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.
path مسار إلى المجلد أو الملف tarball الذي يحتوي المنصة.
url عنوان لمستودع git أو لملف tarball الذي يحتوي على منصة.
commit-ish المرجع "إلزام/وسم/فرع" (Commit/tag/branch). إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "master".

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

  • أندرويد
  • iOS
  • ويندوز (‎‎8.1, Phone 8.1, UWP - Windows 10)
  • Blackberry10
  • أوبونتو
  • Browser

المنصات الموقوفة (Deprecated Platforms)

  • Amazon-fireos (استخدم منصة أندرويد بدلاً منه)
  • WP8 (استخدم ويندوز بدلاً منه)
  • Windows 8.0 (استخدم الإصدارات القديمة من كوردوفا)
  • نظام تشغيل Firefox (استخدم الإصدارات القديمة من كوردوفا)

أمثلة

  • إضافة إصدار مثبّت (pinned version) من المنصتين android و ios، وحفظ الإصدار الذي تم تنزيله في الملفين config.xml و package.json:
cordova platform add android ios‎
  • إضافة منصة أندرويد مع الإصدار الرمزي ‎ ^ 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 | --browserify | --force} |
    {remove | rm} {<pluginid> | <name>} --save |
    {list | ls} |
    search [<keyword>] |
    save |
]‎
أوامر فرعية الخيار الشرح
add <plugin-spec> [...]‎ يضيف هذا الأمر إضافات محددة
add <plugin-spec> [...]‎ عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة *nix أو "؛" في ويندوز.
--noregistry لا تبحث في السجل عن الإضافات.
--link عند التثبيت من مسار محلي، فسيتم إنشاء رابط رمزي (symbolic link) بدلاً من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات.
--nosave عدم حفظ <plugin-spec> كجزء من العنصر plugin في الملفين config.xml و package.json.
--browserify تصريف (Compile) إضافة جافاسكريبت في وقت البناء باستخدام browserify بدلا من runtime.
--force تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف.
remove`‎ ‎‎‎‎`[...]‎
remove <platform>‎[...]‎ --nosave عدم إزالة الإضافة المحددة من الملفين config.xml و package.json
list سرد قائمة من الإضافات المثبتة حاليا
search [<keyword>]‎[...] البحث في الصفحة http://plugins.cordova.io عن الإضافات التي تطابق الكلمات الرئيسية.
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"

خوارزمية حل الإضافات (Algorithm for resolving plugins)

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

  • قيمة العنصر plugin-spec الوارد في الأمر (على سبيل المثال cordova plugin add pluginID@version)
  • قيمة plugin-spec المحفوظة في الملفين config.xml و package.json (أي إن سبق وأضيفت الإضافة بدون الخيار ‎--nosave)
  • اعتبارًا من الإصدار 1.6 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم 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> [..]]
     [--browserify]‎

خيارات

الخيار الشرح
<platform> [..]‎ اسم (اء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
--browserify تصريف (Compile) ملفات جافاسكريبت الخاصة بالإضافة في وقت البناء باستخدام browserify بدلا من runtime.

الأمر cordova compile

ملخص

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

الصياغة

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

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

الأمر cordova build

ملخص

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

الصياغة

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

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

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

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

--browserify تصريف (Compile) ملفات جافاسكريبت الخاصة بالإضافة في وقت البناء باستخدام browserify بدلا من runtime.
<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 (التكامل المستمر continuous integration)، يمكن ضبط متغير البيئة 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
cordova config set browserify false‎

انظر أيضا

مصادر