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

من موسوعة حسوب
تحديث
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 158: سطر 158:
| |-- ios/
| |-- ios/
|-- plugins/
|-- plugins/
   |--cordova-plugin-camera/</syntaxhighlight>  
   |--cordova-plugin-camera/
</syntaxhighlight>  
==== الملف <code>Config.xml</code> ====  
==== الملف <code>Config.xml</code> ====  


سطر 286: سطر 287:
|-
|-
|<code>commit-ish</code>
|<code>commit-ish</code>
|مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>".
|مرجع من أجل <code>Commit/tag/branch</code>. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>".
|}
|}
=== المنصات المدعومة ===  
=== المنصات المدعومة ===  
سطر 292: سطر 293:
*[[Cordova/platforms ios|iOS]]  
*[[Cordova/platforms ios|iOS]]  
* [[Cordova/platforms windows|ويندوز]] (‎‎8.1, Phone 8.1, UWP - Windows 10)  
* [[Cordova/platforms windows|ويندوز]] (‎‎8.1, Phone 8.1, UWP - Windows 10)  
* Blackberry10
* أبنتو
* Browser  
* Browser  
=== المنصات المهملة ===
* [[Cordova/platforms electron|Electron]]
* Amazon-fireos (استخدم منصة أندرويد بدلًا منه)
* WP8 (استخدم ويندوز بدلًا منه)
* Windows 8.0 (استخدم الإصدارات القديمة من كوردوفا)
* نظام تشغيل Firefox (استخدم الإصدارات القديمة من كوردوفا)
 
=== أمثلة ===
=== أمثلة ===
*
*
سطر 327: سطر 321:
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="shell">cordova {plugin | plugins} [
<syntaxhighlight lang="shell">cordova {plugin | plugins} [
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --browserify | --force} |
     add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
     {remove | rm} {<pluginid> | <name>} --save |
     {remove | rm} {<pluginid> | <name>} --save |
     {list | ls} |
     {list | ls} |
    search [<keyword>] |
     save |
     save |
]</syntaxhighlight>  
]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!أوامر فرعية
!أوامر فرعية
سطر 343: سطر 336:
|-
|-
|
|
|<code>add <plugin-spec> [...]‎</code>
| --searchpath <code><directory>‎</code>
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>nix*</code> أو "؛" في ويندوز.
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>nix*</code> أو "؛" في ويندوز.
|-
|-
سطر 357: سطر 350:
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>.  
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>.  
|-
|
|<code>--browserify</code>
|تصريف (Compile) إضافة [[JavaScript|JavaScript]] في وقت البناء باستخدام browserify بدلًا من runtime.
|-
|-
|
|
سطر 370: سطر 359:
|
|
|-
|-
|<code>remove <platform>‎[...]‎</code>
|
|‎<code>--nosave</code>
|‎<code>--nosave</code>
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code>
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code>
سطر 377: سطر 366:
|
|
|سرد قائمة من الإضافات المثبتة حاليًا.  
|سرد قائمة من الإضافات المثبتة حاليًا.  
|-
|<code>search [<keyword>]‎[...]</code>
|
|البحث في الصفحة http://plugins.cordova.io عن الإضافات التي تطابق الكلمات الرئيسية.
|-
|-
|<code>save</code>
|<code>save</code>
سطر 389: سطر 374:


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


* إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد ‎<code>../plugins</code> للبحث عن الإضافات.  
* إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد ‎<code>../plugins</code> للبحث عن الإضافات.  
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins
</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="shell">cordova plugin add cordova-plugin-camera@^2.0.0‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera@^2.0.0‎</syntaxhighlight>
سطر 450: سطر 437:
===الصياغة===  
===الصياغة===  
<syntaxhighlight lang="shell">cordova prepare [<platform> [..]]
<syntaxhighlight lang="shell">cordova prepare [<platform> [..]]
    [--browserify]‎</syntaxhighlight>  
</syntaxhighlight>  
===الخيارات التي يمكن استعمالها===
===الخيارات التي يمكن استعمالها===
{| class="wikitable"
{| class="wikitable"
سطر 458: سطر 445:
|‎<code><platform> [..]‎</code>
|‎<code><platform> [..]‎</code>
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات.
|-
|‎<code>--browserify</code>
|تصريف (Compile) ملفات [[JavaScript|JavaScrip]] الخاصة بالإضافة في وقت البناء باستخدام browserify بدلًا من runtime.
|}
|}


سطر 470: سطر 454:
     [--device|--emulator|--target=<targetName>]
     [--device|--emulator|--target=<targetName>]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  


لمزيد من التفاصيل، انظر أمر البناء (الأمر <code>cordova build</code> ) أدناه.  
لمزيد من التفاصيل، انظر أمر البناء (الأمر <code>cordova build</code> ) أدناه.  
سطر 483: سطر 466:
     [--device|--emulator]
     [--device|--emulator]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!الخيار
!الخيار
سطر 508: سطر 490:


استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة.  
|-
|‎<code>--browserify</code>
|تصريف (Compile) ملفات [[JavaScript|JavaScript]] الخاصة بالإضافة  في وقت البناء باستخدام browserify بدلا من runtime.
|-
|-
|<code><platformOpts></code>
|<code><platformOpts></code>
سطر 523: سطر 502:
<syntaxhighlight lang="shell">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova build android --release --buildConfig=..\myBuildConfig.json‎</syntaxhighlight>
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:  
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:  
<syntaxhighlight lang="shell">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey‎</syntaxhighlight>
<syntaxhighlight lang="shell">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
</syntaxhighlight>


== الأمر <code>cordova run</code> ==
== الأمر <code>cordova run</code> ==
سطر 533: سطر 513:
     [--device|--emulator|--target=<targetName>]
     [--device|--emulator|--target=<targetName>]
     [--buildConfig=<configfile>]
     [--buildConfig=<configfile>]
    [--browserify]
     [-- <platformOpts>]</syntaxhighlight>  
     [-- <platformOpts>]</syntaxhighlight>  
  {| class="wikitable"
  {| class="wikitable"
!الخيار
!الخيار
سطر 573: سطر 552:


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


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


يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة CI، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية ‎<code>--no-telemetry</code>.  
يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة <code>CI</code>، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية ‎<code>--no-telemetry</code>.  
===أمثلة===  
===أمثلة===  
<syntaxhighlight lang="shell">cordova telemetry on
<syntaxhighlight lang="shell">cordova telemetry on
سطر 660: سطر 637:
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="shell">cordova config set autosave false
<syntaxhighlight lang="shell">cordova config set autosave false
cordova config set browserify false‎</syntaxhighlight>
</syntaxhighlight>


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



المراجعة الحالية بتاريخ 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

انظر أيضًا

مصادر